Bug 1736021 - Sweep symbol registry with tracing r=sfink
authorJon Coppeard <jcoppeard@mozilla.com>
Fri, 15 Oct 2021 16:21:24 +0000
changeset 596021 65234acc241da0e54793738ecfd069337fb67bb8
parent 596020 abd389d9d91309740bfbf927a4c50738be39ff84
child 596022 3a02803e1d29b9124b3e0a95721b8eb9878f8059
push id38881
push userimoraru@mozilla.com
push dateFri, 15 Oct 2021 21:35:21 +0000
treeherdermozilla-central@ff6d6594f7b0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssfink
bugs1736021
milestone95.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1736021 - Sweep symbol registry with tracing r=sfink Differential Revision: https://phabricator.services.mozilla.com/D128604
js/src/gc/Sweeping.cpp
--- a/js/src/gc/Sweeping.cpp
+++ b/js/src/gc/Sweeping.cpp
@@ -1192,17 +1192,18 @@ void GCRuntime::updateAtomsBitmap() {
     // refineZoneBitmapForCollectedZone call can only remove atoms from the
     // zone bitmap, so it is conservative to just not call it.
   }
 
   atomMarking.markAtomsUsedByUncollectedZones(rt);
 
   // For convenience sweep these tables non-incrementally as part of bitmap
   // sweeping; they are likely to be much smaller than the main atoms table.
-  rt->symbolRegistry().sweep();
+  SweepingTracer trc(rt);
+  rt->symbolRegistry().traceWeak(&trc);
 }
 
 void GCRuntime::sweepCCWrappers() {
   AutoSetThreadIsSweeping threadIsSweeping;  // This can touch all zones.
   for (SweepGroupZonesIter zone(this); !zone.done(); zone.next()) {
     zone->sweepAllCrossCompartmentWrappers();
   }
 }