diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp index 046934277c..5ff77092ab 100644 --- a/dom/ipc/ContentChild.cpp +++ b/dom/ipc/ContentChild.cpp @@ -2817,10 +2817,10 @@ bool ContentChild::RecvGetFilesResponse(const nsID& aUUID, const GetFilesResponseResult& aResult) { - GetFilesHelperChild* child = mGetFilesPendingRequests.GetWeak(aUUID); + RefPtr child; // This object can already been deleted in case DeleteGetFilesRequest has // been called when the response was sending by the parent. - if (!child) { + if (!mGetFilesPendingRequests.Remove(aUUID, getter_AddRefs(child))) { return true; } @@ -2841,7 +2841,6 @@ ContentChild::RecvGetFilesResponse(const nsID& aUUID, child->Finished(succeeded ? NS_OK : NS_ERROR_OUT_OF_MEMORY); } - mGetFilesPendingRequests.Remove(aUUID); return true; } diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index d2e34fb4ff..e0dd68e275 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1349,6 +1349,7 @@ pref("network.protocol-handler.external.vbscript", false); pref("network.protocol-handler.external.javascript", false); pref("network.protocol-handler.external.data", false); pref("network.protocol-handler.external.ms-help", false); +pref("network.protocol-handler.external.mk", false); pref("network.protocol-handler.external.res", false); pref("network.protocol-handler.external.shell", false); pref("network.protocol-handler.external.vnd.ms.radio", false); diff --git a/xpcom/threads/TimerThread.cpp b/xpcom/threads/TimerThread.cpp index d92c2ef90b..db7c924623 100644 --- a/xpcom/threads/TimerThread.cpp +++ b/xpcom/threads/TimerThread.cpp @@ -170,6 +170,7 @@ public: void operator delete(void* aPtr) { sAllocator->Free(aPtr); + sAllocatorUsers--; DeleteAllocatorIfNeeded(); } @@ -193,7 +194,6 @@ private: { MOZ_ASSERT(!sCanDeleteAllocator || sAllocatorUsers > 0, "This will result in us attempting to deallocate the nsTimerEvent allocator twice"); - sAllocatorUsers--; } RefPtr mTimer;