Bug 1488808 Part 2 - Fix checks after an unhandled divergence in the first debugger request after pausing, r=mccr8.
authorBrian Hackett <bhackett1024@gmail.com>
Wed, 17 Oct 2018 09:59:32 -0600
changeset 500491 33cf80c7214823e5e38307a666add7a0ef116e17
parent 500490 42143e96a1ea13f9b5adaf0ae4e9b8f3c9cdb200
child 500492 d9e7dfd8ce93c6b1c36ee07921a7ca853b4f0e19
push id1864
push userffxbld-merge
push dateMon, 03 Dec 2018 15:51:40 +0000
treeherdermozilla-release@f040763d99ad [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmccr8
bugs1488808
milestone64.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 1488808 Part 2 - Fix checks after an unhandled divergence in the first debugger request after pausing, r=mccr8.
toolkit/recordreplay/ipc/ChildNavigation.cpp
--- a/toolkit/recordreplay/ipc/ChildNavigation.cpp
+++ b/toolkit/recordreplay/ipc/ChildNavigation.cpp
@@ -693,23 +693,25 @@ PausedPhase::MaybeDivergeFromRecording()
   if (!ThisProcessCanRewind()) {
     // Recording divergence is not supported if we can't rewind. We can't
     // simply allow execution to proceed from here as if we were not
     // diverged, since any events or other activity that show up afterwards
     // will not be reflected in the recording.
     return false;
   }
 
+  size_t index = mRequestIndex;
+
   if (!EnsureTemporaryCheckpoint()) {
     // One of the premature exit cases was hit in EnsureTemporaryCheckpoint.
     // Don't allow any operations that can diverge from the recording.
     return false;
   }
 
-  if (mRequests[mRequestIndex].mUnhandledDivergence) {
+  if (mRequests[index].mUnhandledDivergence) {
     // We tried to process this request before and had an unhandled divergence.
     // Disallow the request handler from doing anything that might diverge from
     // the recording.
     return false;
   }
 
   DivergeFromRecording();
   return true;