gecko-dev/js
Iain Ireland d12c86aa57 Bug 1661728: Remove ICScript::jitScript_ r=jandem
The bug here occurs when we:
a) Trial-inline A into B, creating an ICScript owned by B with a pointer to A's JitScript.
b) Perform a compacting GC, discarding the JitScript for A, but preserving the JitScript for B (because it is on the stack).
c) Create a new JitScript for A.
d) Warp-compile B, without hitting the B->A trial-inlined call IC.

In this case, the `JitScript*` stored in the ICScript created in `a)` is dangling, and does not match the JitScript created in `c)`.

The easy way to fix this is to not store a `JitScript*` here in the first place. We only use `ICScript::jitScript_` to:
a) Tell whether the ICScript is inlined, which can be done more easily by looking at the depth.
b) Find the `FallbackICStubSpace` for non-inlined ICScripts.

If we use the depth to tell when an ICScript is inlined, then we don't need a pointer to find the owning JitScript (and therefore its stub space) for non-inlined ICScripts. Non-inlined ICScripts are embedded inside a JitScript, so we can compute the offset directly.

Differential Revision: https://phabricator.services.mozilla.com/D88690
2020-08-31 12:52:47 +00:00
..
ductwork/debugger
examples
public Bug 1662366 part 6 - Trace cloned CacheIR stub data. r=iain 2020-09-02 07:35:15 +00:00
rust Bug 1659885 - Define |JS::shadow::Realm| in public shadow API in its own minimal header. r=jonco 2020-08-20 19:23:08 +00:00
src Bug 1661728: Remove ICScript::jitScript_ r=jandem 2020-08-31 12:52:47 +00:00
xpconnect Bug 1662251 - stop assigning from NS_Convert* values, mostly; r=sg 2020-09-02 09:54:37 +00:00
app.mozbuild
ffi.configure Bug 1659906 - Upgrade libffi to version 3.3. r=froydnj 2020-08-22 22:02:22 +00:00
moz.build
moz.configure Bug 1662705: Add an `--help` dependency to the JS simulator option; r=froydnj 2020-09-02 12:37:33 +00:00
sub.configure Bug 1657954 - Move various branding options from `old-configure` r=geckoview-reviewers,mhentges,nalexander,snorp 2020-08-11 15:58:52 +00:00