Bug 1260198 - Clear per-zone string cache after compacting r=terrence
authorJon Coppeard <jcoppeard@mozilla.com>
Wed, 30 Mar 2016 17:14:44 +0100
changeset 291080 e45ba191b66a4a74123297dd8e1a93e3f329886e
parent 291079 3f5ed1912b14b7a1f2ae9d9697f9a65f3ec516a1
child 291081 57e8e4c71ecf66ccf431eebf8c88083df266f65c
push id19656
push usergwagner@mozilla.com
push dateMon, 04 Apr 2016 13:43:23 +0000
treeherderb2g-inbound@e99061fde28a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersterrence
bugs1260198
milestone48.0a1
Bug 1260198 - Clear per-zone string cache after compacting r=terrence
js/src/jsgc.cpp
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -2795,16 +2795,18 @@ GCRuntime::updatePointersToRelocatedCell
     // TODO: Should possibly just call purgeRuntime() here.
     rt->newObjectCache.purge();
     rt->nativeIterCache.purge();
 
     // Call callbacks to get the rest of the system to fixup other untraced pointers.
     callWeakPointerZoneGroupCallbacks();
     for (CompartmentsInZoneIter comp(zone); !comp.done(); comp.next())
         callWeakPointerCompartmentCallbacks(comp);
+    if (rt->sweepZoneCallback)
+        rt->sweepZoneCallback(zone);
 }
 
 void
 GCRuntime::protectAndHoldArenas(Arena* arenaList)
 {
     for (Arena* arena = arenaList; arena; ) {
         MOZ_ASSERT(arena->allocated());
         Arena* next = arena->next;