Bug 784730 - Crash in ReparentWrapperIfFound if wrapper already in scope. r=bholley

This commit is contained in:
Andrew McCreight 2013-02-06 12:18:54 +00:00
Родитель 62c71cbd25
Коммит cfb102dafc
2 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -107,6 +107,7 @@ public:
{
NS_PRECONDITION(wrapper,"bad param");
nsISupports* obj = wrapper->GetIdentityObject();
MOZ_ASSERT(!Find(obj), "wrapper already in new scope!");
Entry* entry = (Entry*)
JS_DHashTableOperate(mTable, obj, JS_DHASH_ADD);
if (!entry)

Просмотреть файл

@ -1582,8 +1582,8 @@ XPCWrappedNative::ReparentWrapperIfFound(XPCCallContext& ccx,
wrapper->UpdateScriptableInfo(newProto->GetScriptableInfo());
}
NS_ASSERTION(!newMap->Find(wrapper->GetIdentityObject()),
"wrapper already in new scope!");
if (newMap->Find(wrapper->GetIdentityObject()))
MOZ_CRASH();
if (!newMap->Add(wrapper))
MOZ_CRASH();