Bug 1284102 - Guard against double-deallocating devices in release. r=jib

MozReview-Commit-ID: 29ySAF3AHIi

--HG--
extra : rebase_source : 5e6af7dc3cbaba078ca18f80e0d2e6c7be748766
extra : source : 71fb9f5efa1c0cd1023b0f8bf717c3b68347b4af
This commit is contained in:
Andreas Pehrson 2016-09-21 17:18:25 +02:00
parent e53071bee0
commit 37d5531de0

View File

@ -252,9 +252,14 @@ public:
return a.get() == b.get();
}
};
MOZ_ASSERT(mRegisteredHandles.Contains(handle, Comparator()));
mRegisteredHandles.RemoveElementAt(mRegisteredHandles.IndexOf(handle, 0,
Comparator()));
auto ix = mRegisteredHandles.IndexOf(handle, 0, Comparator());
if (ix == mRegisteredHandles.NoIndex) {
MOZ_ASSERT(false);
return NS_ERROR_FAILURE;
}
mRegisteredHandles.RemoveElementAt(ix);
if (mRegisteredHandles.Length() && !mInShutdown) {
// Whenever constraints are removed, other parties may get closer to ideal.
auto& first = mRegisteredHandles[0];