Closed Bug 1266457 Opened 4 years ago Closed 3 years ago
Update pointers in GC things in two phases when compacting
At the moment we update all GC things in the same phase which is problematic because there are dependencies between different thing kinds. We can simplify matters by updating in two separate phases, the second being for objects and the first for everything else. (The objects phase will also continue to update type descriptors first, so that's really another mini-phase).
Replace repeated calls to ArenasToUpdate::updateKind with static sets of thing kinds to update in each phase, possibly filtered for foreground/background update.
Attachment #8743941 - Flags: review?(terrence)
The type descriptor for a typed object actually lives on the object group. Now that object groups are updated before any objects we can remove MaybeForwarded when accessing the type descriptor in the typed object trace hook.
Attachment #8743943 - Flags: review?(terrence)
Attachment #8743941 - Flags: review?(terrence) → review+
Attachment #8743943 - Flags: review?(terrence) → review+
You need to log in before you can comment on or make changes to this bug.