Closed Bug 728736 Opened 9 years ago Closed 9 years ago

Simplify JS_IterateCompartments

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla13

People

(Reporter: n.nethercote, Assigned: n.nethercote)

Details

Attachments

(1 file)

From bug 702300 comment 61:

> @@ +3773,5 @@
> > +    rt->gcHelperThread.waitBackgroundSweepEnd();
> > +#endif
> > +    AutoUnlockGC unlock(rt);
> > +
> > +    AutoCopyFreeListToArenas copy(rt);
> 
> Waiting for background sweeping to end and the AutoUnlockGC should be
> unnecessary. Same for AutoCopyFreeListToArenas.

The functions that can be simplified are JS_IterateCompartments, IterateCompartmentsArenasCells, and IterateChunks.
It's only JS_IterateCompartments that needs to be changed. The others touch things that are modified by background sweeping (cells and chunks), so they should still wait for it to end. (Although we probably don't need the AutoCopyFreeListToArenas in IterateChunks, but it really doesn't cost us much.)

This is my fault. I should have caught it in review when JS_IterateCompartments landed.
Attached patch patchSplinter Review
Attachment #598757 - Flags: review?(wmccloskey)
Attachment #598757 - Flags: review?(wmccloskey) → review+
Summary: Simplify the GC heap iterator functions → Simplify JS_IterateCompartments
https://hg.mozilla.org/mozilla-central/rev/c3e591a5b867
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla13
You need to log in before you can comment on or make changes to this bug.