Open
Bug 1118026
Opened 10 years ago
Updated 1 year ago
Store GC things as JS::GCCellPtr in the cycle collector graph
Categories
(Core :: Cycle Collector, defect)
Tracking
()
NEW
People
(Reporter: mccr8, Unassigned)
References
Details
This will let us get rid of a call to js::GCThingTraceKind in the CC.
Reporter | ||
Comment 1•10 years ago
|
||
I looked at this some, but it is a little tricky. In addition to changing JSGCThingParticipant::Traverse(), you need to carefully audit every place that looks at the mPointer field of a PtrInfo, and ensure that if it is possible that it is a JS pointer, you mask out the bits. In most places, you know statically, but there's some places related to logging where you don't, and I'm not sure what the best way to go about that is. Maybe just check is IsGrayJS() || IsBlackJS(), because we don't care about performance that much in that case.
Reporter | ||
Comment 2•10 years ago
|
||
Oh, and you also have to add this awful API to GCCellPtr that returns the inner pointer thing as a void*, and then another way to construct a GCCellPtr from a void*.
Updated•2 years ago
|
Severity: normal → S3
Reporter | ||
Updated•1 year ago
|
Component: XPCOM → Cycle Collector
You need to log in
before you can comment on or make changes to this bug.
Description
•