Open Bug 1501334 Opened 6 years ago Updated 1 month ago

IsAboutToBeFinalized doesn't work for atoms

Categories

(Core :: JavaScript: GC, enhancement, P5)

enhancement

Tracking

()

People

(Reporter: jonco, Unassigned)

References

(Blocks 1 open bug)

Details

In general IsAboutToBeFinalized is only called on GC things in a zone that is currently being swept, and is used to discover when the referents of weak pointers are not live and are going to be destroyed.

The exception to this is atoms, which are in a separate zone which is swept after all other zones (in an incremental collection).

IsATBF doesn't currently take account of this, so if your object has a weak pointer to an atom calling it while your object is being swept will always return false, even though the atom could later be freed.

Maybe we need to make an exception for this for atoms, or maybe we need another function for this case that returns whether an atom has been marked *so far*.  In the sweeping case above this could result in things being swept even if the atom was later found to be used by another zone, but I think that this is safe.
Severity: normal → S3
Blocks: GC.easeofuse
Severity: S3 → N/A
You need to log in before you can comment on or make changes to this bug.