mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 19:25:43 +00:00
97f7fd3ca4
We'd really like the LiveSavedFrameCache to be able to assert that, if a frame has its hasCachedSavedFrame bit set, there is indeed a cache entry for it (if the cache hasn't been cleared completely for a compartment mismatch). See the explanation of LiveSavedFrameCache in Stack.h, and the comments in LiveSavedFrameCache::find. Sometimes we do find a cache entry for the frame, but execution in that frame has progressed to a different source position since we cached it, so the SavedFrame in that cache entry isn't useful. When this occurs, we used to simply pop the cache entry, and report a miss: although this did create a situation where a frame with its bit set had no cache entry, that was only temporary: we would push a new entry for the frame as we build the new SavedFrame chain. Unless, of course, SavedFrame construction encounters an OOM and the whole process aborts early. This patch clears a frame's hasCachedSavedFrame bit when we report a cache miss due to a pc mismatch. Under normal circumstances, the frame will soon be cached again and its bit re-set. If an OOM does occur, the absence of the cache entry is accurately reported. --HG-- extra : rebase_source : 5e980e5732b7fd5ff1dd6a68c1a49a1c538010c6 extra : source : 2ed6d9d910b0f3dd24e163f17e3a70d327286582 |
||
---|---|---|
.. | ||
ductwork/debugger | ||
examples | ||
ipc | ||
public | ||
rust | ||
src | ||
xpconnect | ||
app.mozbuild | ||
ffi.configure | ||
moz.build | ||
moz.configure |