Closed Bug 1597333 Opened 6 years ago Closed 6 years ago

Replace Shape::listp with a tagged pointer

Categories

(Core :: JavaScript Engine, task, P3)

task

Tracking

()

RESOLVED FIXED
mozilla72
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.

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

Pushed by jcoppeard@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7e8ad8bbdf8a Replace Shape::listp with a tagged pointer r=jandem https://hg.mozilla.org/integration/autoland/rev/25c3c541b45a Trace dictionary objects reachable from shapes r=sfink
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: