remaining tabs to space js/src/jsgc.cpp

This commit is contained in:
win7-7 2019-04-30 02:43:47 +03:00 • committed by Roy Tam
commit 862e0cb3ea

View file

@ -3758,11 +3758,11 @@ GCRuntime::beginMarkPhase(JS::gcreason::Reason reason, AutoLockForExclusiveAcces
gcstats::AutoPhase ap2(stats, gcstats::PHASE_MARK_ROOTS); gcstats::AutoPhase ap2(stats, gcstats::PHASE_MARK_ROOTS);
if (isIncremental) { if (isIncremental) {
bufferGrayRoots(); bufferGrayRoots();
markCompartments(); markCompartments();
} }
return true; return true;
} }
@ -3778,11 +3778,11 @@ GCRuntime::markCompartments()
* (1) the compartment has been entered (set in beginMarkPhase() above) * (1) the compartment has been entered (set in beginMarkPhase() above)
* (2) the compartment is not being collected (set in beginMarkPhase() * (2) the compartment is not being collected (set in beginMarkPhase()
* above) * above)
* (3) an object in the compartment was marked during root marking, either * (3) an object in the compartment was marked during root marking, either
* as a black root or a gray root (set in RootMarking.cpp), or * as a black root or a gray root (set in RootMarking.cpp), or
* (4) the compartment has incoming cross-compartment edges from another * (4) the compartment has incoming cross-compartment edges from another
* compartment that has maybeAlive set (set by this method). * compartment that has maybeAlive set (set by this method).
* *
* If the maybeAlive is false, then we set the scheduledForDestruction flag. * If the maybeAlive is false, then we set the scheduledForDestruction flag.
* At the end of the GC, we look for compartments where * At the end of the GC, we look for compartments where
* scheduledForDestruction is true. These are compartments that were somehow * scheduledForDestruction is true. These are compartments that were somehow
@ -3802,35 +3802,35 @@ GCRuntime::markCompartments()
/* Propagate the maybeAlive flag via cross-compartment edges. */ /* Propagate the maybeAlive flag via cross-compartment edges. */
Vector<JSCompartment*, 0, js::SystemAllocPolicy> workList; Vector<JSCompartment*, 0, js::SystemAllocPolicy> workList;
for (CompartmentsIter comp(rt, SkipAtoms); !comp.done(); comp.next()) { for (CompartmentsIter comp(rt, SkipAtoms); !comp.done(); comp.next()) {
if (comp->maybeAlive) { if (comp->maybeAlive) {
if (!workList.append(comp)) if (!workList.append(comp))
return; return;
} }
} }
while (!workList.empty()) { while (!workList.empty()) {
JSCompartment* comp = workList.popCopy(); JSCompartment* comp = workList.popCopy();
for (JSCompartment::WrapperEnum e(comp); !e.empty(); e.popFront()) { for (JSCompartment::WrapperEnum e(comp); !e.empty(); e.popFront()) {
if (e.front().key().is<JSString*>()) if (e.front().key().is<JSString*>())
continue; continue;
JSCompartment* dest = e.front().mutableKey().compartment(); JSCompartment* dest = e.front().mutableKey().compartment();
if (dest && !dest->maybeAlive) { if (dest && !dest->maybeAlive) {
dest->maybeAlive = true; dest->maybeAlive = true;
if (!workList.append(dest)) if (!workList.append(dest))
return; return;
} }
} }
} }
/* Set scheduleForDestruction based on maybeAlive. */ /* Set scheduleForDestruction based on maybeAlive. */
for (GCCompartmentsIter comp(rt); !comp.done(); comp.next()) { for (GCCompartmentsIter comp(rt); !comp.done(); comp.next()) {
MOZ_ASSERT(!comp->scheduledForDestruction); MOZ_ASSERT(!comp->scheduledForDestruction);
if (!comp->maybeAlive && !rt->isAtomsCompartment(comp)) if (!comp->maybeAlive && !rt->isAtomsCompartment(comp))
comp->scheduledForDestruction = true; comp->scheduledForDestruction = true;
} }
} }