diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-02-23 19:43:47 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 12:57:32 +0200 |
commit | 0d1eea2ebfcf1a3746ff0125a6fa340e8b90d722 (patch) | |
tree | cd1dce30531ccb536236df99746b368895c66576 /js/src/jsgc.cpp | |
parent | af69cb07db0d810a1a1a507b890e6beb23dc421c (diff) | |
download | UXP-0d1eea2ebfcf1a3746ff0125a6fa340e8b90d722.tar UXP-0d1eea2ebfcf1a3746ff0125a6fa340e8b90d722.tar.gz UXP-0d1eea2ebfcf1a3746ff0125a6fa340e8b90d722.tar.lz UXP-0d1eea2ebfcf1a3746ff0125a6fa340e8b90d722.tar.xz UXP-0d1eea2ebfcf1a3746ff0125a6fa340e8b90d722.zip |
Revert #1091 Remove unboxed object code phase 1 + extras.
This should be the last code backout for this. merging this branch
should get us back to the way we were (+ additional code changes for
later changes) as fasr as the unused unboxed code is concerned.
Diffstat (limited to 'js/src/jsgc.cpp')
-rw-r--r-- | js/src/jsgc.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/js/src/jsgc.cpp b/js/src/jsgc.cpp index 3ad526f74..64573b55a 100644 --- a/js/src/jsgc.cpp +++ b/js/src/jsgc.cpp @@ -6176,6 +6176,12 @@ gc::MergeCompartments(JSCompartment* source, JSCompartment* target) for (auto group = source->zone()->cellIter<ObjectGroup>(); !group.done(); group.next()) { group->setGeneration(target->zone()->types.generation); group->compartment_ = target; + + // Remove any unboxed layouts from the list in the off thread + // compartment. These do not need to be reinserted in the target + // compartment's list, as the list is not required to be complete. + if (UnboxedLayout* layout = group->maybeUnboxedLayoutDontCheckGeneration()) + layout->detachFromCompartment(); } // Fixup zone pointers in source's zone to refer to target's zone. |