void WeakMapBase::restoreMarkedWeakMaps(WeakMapSet& markedWeakMaps) { for (WeakMapSet::Range r = markedWeakMaps.all(); !r.empty(); r.popFront()) { WeakMapBase* map = r.front(); MOZ_ASSERT(map->zone()->isGCMarking()); MOZ_ASSERT(!map->marked); map->marked = true; } }
bool WeakMapBase::saveCompartmentMarkedWeakMaps(JSCompartment *c, WeakMapSet &markedWeakMaps) { for (WeakMapBase *m = c->gcWeakMapList; m; m = m->next) { if (m->marked && !markedWeakMaps.put(m)) return false; } return true; }
bool WeakMapBase::saveZoneMarkedWeakMaps(JS::Zone* zone, WeakMapSet& markedWeakMaps) { for (WeakMapBase* m : zone->gcWeakMapList()) { if (m->marked && !markedWeakMaps.put(m)) return false; } return true; }