Closed
Bug 1190911
Opened 10 years ago
Closed 10 years ago
Remove AutoIdValueVector and use standard rooting
Categories
(Core :: JavaScript: GC, defect)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla42
| Tracking | Status | |
|---|---|---|
| firefox42 | --- | fixed |
People
(Reporter: terrence, Assigned: terrence)
Details
Attachments
(1 file)
|
7.62 KB,
patch
|
jonco
:
review+
|
Details | Diff | Splinter Review |
And for IdValuePairs. I had no idea these even existed.
Since this is used in the front-end, I also tracked down how rooting on the parse thread works. Only actual JSContexts are in the Runtime list that ContextIter visits, so we simply don't mark Rooted that are linked into an ExclusiveContext. This works because we cannot collect the parse thread zone. I do not think, however, that we have assertion anywhere that the thing being rooted actually belongs to the zone (or atoms zone) when off thread, so that is one potential hole.
However, this is a bit spooky-action-at-a-distance. I was thinking that we might want to add a RootLists to Zone in any case so that we can move most of Compartment::trace and Zone::trace to PersistentRooted. This would also let us associate these Rooted directly with the owner Zone, which could dramatically lower our compartment GC overhead.
Attachment #8643108 -
Flags: review?(jcoppeard)
Comment 1•10 years ago
|
||
Comment on attachment 8643108 [details] [diff] [review]
remove_autoidvaluevector-v0.diff
Review of attachment 8643108 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/ds/IdValuePair.h
@@ +22,1 @@
> jsid id;
Any reason you swapped these around? The original order makes more sense in light of the name of the class.
Attachment #8643108 -
Flags: review?(jcoppeard) → review+
| Assignee | ||
Comment 2•10 years ago
|
||
(In reply to Jon Coppeard (:jonco) from comment #1)
> Comment on attachment 8643108 [details] [diff] [review]
> remove_autoidvaluevector-v0.diff
>
> Review of attachment 8643108 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: js/src/ds/IdValuePair.h
> @@ +22,1 @@
> > jsid id;
>
> Any reason you swapped these around? The original order makes more sense in
> light of the name of the class.
On 32bit it should give more efficient packing. I guess it won't matter in a vector because of alignment, but it just seemed like good hygiene.
Comment 4•10 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
Comment 5•10 years ago
|
||
(In reply to Terrence Cole [:terrence] from comment #2)
Oh right, makes sense.
You need to log in
before you can comment on or make changes to this bug.
Description
•