Closed Bug 1069655 Opened 6 years ago Closed 6 years ago

Unify the forwarding mechanism between Nursery and Compacting

Categories

(Core :: JavaScript: GC, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla35

People

(Reporter: terrence, Assigned: jonco)

References

Details

Attachments

(1 file)

Brian pointed out on IRC that the comment in TypedObject::obj_sweep about why we need MaybeForwarded is extremely confusing; in particular, it is not clear it it also works on nursery pointers and if not, why it's not needed for Nursery pointers. We eventually determined that nothing touched there is nursery allocable and the comment was just misleading.

However, it did occur to me that we shouldn't even need this distinction. We currently use different mechanisms for forwarding because compacting needs to keep the shape pointer live for longer. There is no reason that the nursery cannot use the same forwarding layout, however. It should be simple to reify them and give us a nice complexity and clarity win.
Unifying these mechanisms is a great idea.
Assignee: nobody → jcoppeard
Attachment #8492225 - Flags: review?(terrence)
Comment on attachment 8492225 [details] [diff] [review]
unify-forwarding-mechanisms

Review of attachment 8492225 [details] [diff] [review]:
-----------------------------------------------------------------

Great!
Attachment #8492225 - Flags: review?(terrence) → review+
Fix for build errors in non-unified builds:

https://hg.mozilla.org/integration/mozilla-inbound/rev/d47f0d824c2d
This did land on mozilla-central, though the bug didn't get marked. Sorry for any confusion.
https://hg.mozilla.org/mozilla-central/rev/3161ad541392
https://hg.mozilla.org/mozilla-central/rev/d47f0d824c2d
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
You need to log in before you can comment on or make changes to this bug.