Bug 1313585 - Part 1: Removing gamepads while nsGlobalWindow is removed in GamepadManager; r?lenzak800, qdot draft
authorDaosheng Mu <daoshengmu@gmail.com>
Fri, 28 Oct 2016 15:58:22 +0800
changeset 433060 0a2b8f446a44e09e49c40c1d48eb42095ab58edf
parent 430042 3f4c3a3cabaf94958834d3a8935adfb4a887942d
child 433061 5e302d1d4d0e4b64f774608de07d8e4ef63cb10f
push id34472
push userbmo:dmu@mozilla.com
push dateThu, 03 Nov 2016 03:18:43 +0000
reviewerslenzak800, qdot
bugs1313585
milestone52.0a1
Bug 1313585 - Part 1: Removing gamepads while nsGlobalWindow is removed in GamepadManager; r?lenzak800, qdot MozReview-Commit-ID: 8kh0hyqzOyW
dom/gamepad/GamepadManager.cpp
--- a/dom/gamepad/GamepadManager.cpp
+++ b/dom/gamepad/GamepadManager.cpp
@@ -172,16 +172,20 @@ GamepadManager::RemoveListener(nsGlobalW
     // as a result of our own destructor here, so just bail out.
     return;
   }
 
   if (mListeners.IndexOf(aWindow) == NoIndex) {
     return; // doesn't exist
   }
 
+  for (auto iter = mGamepads.Iter(); !iter.Done(); iter.Next()) {
+      aWindow->RemoveGamepad(iter.Key());
+  }
+
   mListeners.RemoveElement(aWindow);
 
   if (mListeners.IsEmpty()) {
     StopMonitoring();
   }
 }
 
 already_AddRefed<Gamepad>