diff --git a/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp b/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp index dc0d15daef8..93c28467ad7 100644 --- a/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp +++ b/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp @@ -461,7 +461,15 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx, rv = si->GetCallback()-> PostCreate(wrapper, ccx, wrapper->GetFlatJSObject()); if(NS_FAILED(rv)) + { + { // scoped lock + XPCAutoLock lock(mapLock); + map->Remove(wrapper); + } + + wrapper->Release(); return rv; + } } }