Handle failing node adoption properly.

This commit is contained in:
Pale Moon
2016-12-13 02:21:49 +01:00
committed by roytam1
parent 997ff03d64
commit dab1cd9e5c
+6
View File
@@ -471,8 +471,14 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep,
JSAutoCompartment ac(cx, wrapper);
rv = ReparentWrapper(cx, wrapper);
if (NS_FAILED(rv)) {
if (wasRegistered) {
aNode->OwnerDoc()->UnregisterActivityObserver(aNode->AsElement());
}
aNode->mNodeInfo.swap(newNodeInfo);
if (wasRegistered) {
aNode->OwnerDoc()->RegisterActivityObserver(aNode->AsElement());
}
return rv;
}
}