Replace Shape::listp with a tagged pointer
Categories
(Core :: JavaScript Engine, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox72 | --- | fixed |
People
(Reporter: jonco, Assigned: jonco)
Details
Attachments
(2 files)
Right now shapes have a 'listp' field which is a pointer into either the next shape in a dictionary mode shape list, or into the owning object if it's the last shape in the list.
This is useful for some list manipulation operations but is confusing and presents difficulties for the GC in a couple of places.
It would simplify things if this could be stored as a tagged pointer to a shape or an object.
| Assignee | ||
Comment 1•6 years ago
|
||
| Assignee | ||
Comment 2•6 years ago
|
||
Previously we had to check for this pointer when finalizing objects and clear it in the rare cases it was present. It's simpler to trace any dictionary object reachable from a shape which means we can remove this special case.
This adds tracing and a pre-write barrier to the pointer. There is still no post barrier for this which means nursery special case handling of this is still present.
Depends on D53790
Comment 4•6 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/7e8ad8bbdf8a
https://hg.mozilla.org/mozilla-central/rev/25c3c541b45a
Description
•