From cab8ea17e542070ce9e84359ed1cccea2ffb79fc Mon Sep 17 00:00:00 2001 From: "sdv%sparc.spb.su" Date: Fri, 30 Jun 2000 10:46:49 +0000 Subject: [PATCH] fixed a memory leak git-svn-id: svn://10.0.0.236/trunk@73587 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/java/dom/src/nsJavaDOMImpl.cpp | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/mozilla/java/dom/src/nsJavaDOMImpl.cpp b/mozilla/java/dom/src/nsJavaDOMImpl.cpp index 4eaf33248cc..3de520cba33 100644 --- a/mozilla/java/dom/src/nsJavaDOMImpl.cpp +++ b/mozilla/java/dom/src/nsJavaDOMImpl.cpp @@ -215,20 +215,25 @@ nsIDOMDocument* nsJavaDOMImpl::GetDocument(nsIDocumentLoader* loader) nsIDOMDocument* domDoc = nsnull; nsresult rv = loader->GetContainer(&container); - if (NS_SUCCEEDED(rv) && container) + if (NS_SUCCEEDED(rv) && container) { rv = container->QueryInterface(kIDocShellIID, (void**) &docshell); - if (NS_SUCCEEDED(rv) && docshell) - rv = docshell->GetContentViewer(&contentv); - - if (NS_SUCCEEDED(rv) && contentv) { - rv = contentv->QueryInterface(kIDocumentViewerIID, - (void**) &docv); - if (NS_SUCCEEDED(rv) && docv) { - docv->GetDocument(document); - rv = document->QueryInterface(kIDOMDocumentIID, - (void**) &domDoc); - if (NS_SUCCEEDED(rv) && docv) { - return domDoc; + container->Release(); + if (NS_SUCCEEDED(rv) && docshell) { + rv = docshell->GetContentViewer(&contentv); + docshell->Release(); + if (NS_SUCCEEDED(rv) && contentv) { + rv = contentv->QueryInterface(kIDocumentViewerIID, (void**) &docv); + contentv->Release(); + if (NS_SUCCEEDED(rv) && docv) { + rv = docv->GetDocument(document); + docv->Release(); + if (NS_SUCCEEDED(rv) && document) { + rv = document->QueryInterface(kIDOMDocumentIID, (void**) &domDoc); + if (NS_SUCCEEDED(rv) && docv) { + return domDoc; + } + } + } } } }