Bug 1483365 - Run SnowWhiteKiller non-incrementally when recording/replaying, r=mccr8.
authorBrian Hackett <bhackett1024@gmail.com>
Tue, 21 Aug 2018 01:01:40 +0000
changeset 432648 3d462cf06ef0304239d65d806e2a234e3d03172e
parent 432647 0e8748072c49da9d46e63aeb941ef7b2d7ccfaae
child 432649 81466097f47d43d45f5d4829f1911a1f7cddcd3e
push id34482
push usertoros@mozilla.com
push dateTue, 21 Aug 2018 21:56:56 +0000
treeherdermozilla-central@7c96ad3ab673 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmccr8
bugs1483365
milestone63.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 1483365 - Run SnowWhiteKiller non-incrementally when recording/replaying, r=mccr8.
xpcom/base/nsCycleCollector.cpp
--- a/xpcom/base/nsCycleCollector.cpp
+++ b/xpcom/base/nsCycleCollector.cpp
@@ -2723,17 +2723,19 @@ public:
       }
       aObject.mParticipant->DeleteCycleCollectable(aObject.mPointer);
     }
   }
 
   bool
   Visit(nsPurpleBuffer& aBuffer, nsPurpleBufferEntry* aEntry)
   {
-    if (mBudget) {
+    // Ignore any slice budget we have when recording/replaying, as it behaves
+    // non-deterministically.
+    if (mBudget && !recordreplay::IsRecordingOrReplaying()) {
       if (mBudget->isOverBudget()) {
         return false;
       }
       mBudget->step();
     }
 
     MOZ_ASSERT(aEntry->mObject, "Null object in purple buffer");
     if (!aEntry->mRefCnt->get()) {