diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp
index 1167fe7b94b..436b4284905 100644
--- a/mozilla/content/html/document/src/nsHTMLDocument.cpp
+++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp
@@ -193,18 +193,16 @@ NS_NewHTMLDocument(nsIDocument** aInstancePtrResult)
nsHTMLDocument* doc = new nsHTMLDocument();
NS_ENSURE_TRUE(doc, NS_ERROR_OUT_OF_MEMORY);
+ NS_ADDREF(doc);
nsresult rv = doc->Init();
if (NS_FAILED(rv)) {
- delete doc;
-
- return rv;
+ NS_RELEASE(doc);
}
*aInstancePtrResult = doc;
- NS_ADDREF(*aInstancePtrResult);
- return NS_OK;
+ return rv;
}
class IdAndNameMapEntry : public PLDHashEntryHdr
diff --git a/mozilla/content/html/document/src/nsImageDocument.cpp b/mozilla/content/html/document/src/nsImageDocument.cpp
index 7e542ac3134..fefb601cf5e 100644
--- a/mozilla/content/html/document/src/nsImageDocument.cpp
+++ b/mozilla/content/html/document/src/nsImageDocument.cpp
@@ -731,14 +731,14 @@ NS_NewImageDocument(nsIDocument** aResult)
return NS_ERROR_OUT_OF_MEMORY;
}
+ NS_ADDREF(doc);
nsresult rv = doc->Init();
if (NS_FAILED(rv)) {
- delete doc;
- return rv;
+ NS_RELEASE(doc);
}
- NS_ADDREF(*aResult = doc);
+ *aResult = doc;
- return NS_OK;
+ return rv;
}
diff --git a/mozilla/content/html/document/src/nsPluginDocument.cpp b/mozilla/content/html/document/src/nsPluginDocument.cpp
index 8e5e4b941cc..97c769d843f 100644
--- a/mozilla/content/html/document/src/nsPluginDocument.cpp
+++ b/mozilla/content/html/document/src/nsPluginDocument.cpp
@@ -262,14 +262,14 @@ NS_NewPluginDocument(nsIDocument** aResult)
return NS_ERROR_OUT_OF_MEMORY;
}
+ NS_ADDREF(doc);
nsresult rv = doc->Init();
if (NS_FAILED(rv)) {
- delete doc;
- return rv;
+ NS_RELEASE(doc);
}
- NS_ADDREF(*aResult = doc);
+ *aResult = doc;
- return NS_OK;
+ return rv;
}
diff --git a/mozilla/content/xml/document/src/nsXMLDocument.cpp b/mozilla/content/xml/document/src/nsXMLDocument.cpp
index e98c8ffa1b4..52f3500a1d6 100644
--- a/mozilla/content/xml/document/src/nsXMLDocument.cpp
+++ b/mozilla/content/xml/document/src/nsXMLDocument.cpp
@@ -116,20 +116,16 @@ NS_NewDOMDocument(nsIDOMDocument** aInstancePtrResult,
*aInstancePtrResult = nsnull;
- nsXMLDocument* doc = new nsXMLDocument();
+ nsRefPtr doc = new nsXMLDocument();
if (!doc)
return NS_ERROR_OUT_OF_MEMORY;
rv = doc->Init();
if (NS_FAILED(rv)) {
- delete doc;
-
return rv;
}
- nsCOMPtr kungFuDeathGrip(doc);
-
doc->nsIDocument::SetDocumentURI(aBaseURI);
doc->SetBaseURI(aBaseURI);
@@ -164,18 +160,16 @@ NS_NewXMLDocument(nsIDocument** aInstancePtrResult)
nsXMLDocument* doc = new nsXMLDocument();
NS_ENSURE_TRUE(doc, NS_ERROR_OUT_OF_MEMORY);
+ NS_ADDREF(doc);
nsresult rv = doc->Init();
if (NS_FAILED(rv)) {
- delete doc;
-
- return rv;
+ NS_RELEASE(doc);
}
*aInstancePtrResult = doc;
- NS_ADDREF(*aInstancePtrResult);
- return NS_OK;
+ return rv;
}
// NOTE! nsDocument::operator new() zeroes out all members, so don't