From 5fd55c1f5c441401cab2bc5c073cb270450b8d8a Mon Sep 17 00:00:00 2001 From: "rpotts%netscape.com" Date: Sat, 18 Sep 1999 06:20:49 +0000 Subject: [PATCH] Changed GetDocumentLoadGroup(...) to be XPCom complient. This helps prevent leaks when using nsCOMPtrs. git-svn-id: svn://10.0.0.236/trunk@48176 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/base/public/nsIDocument.h | 2 +- mozilla/content/base/src/nsDocument.cpp | 6 ++++-- mozilla/content/base/src/nsDocument.h | 2 +- mozilla/content/html/document/src/nsHTMLContentSink.cpp | 5 ++++- mozilla/content/html/style/src/nsCSSLoader.cpp | 5 ++++- mozilla/layout/base/public/nsIDocument.h | 2 +- mozilla/layout/base/src/nsDocument.cpp | 6 ++++-- mozilla/layout/base/src/nsDocument.h | 2 +- mozilla/layout/html/document/src/nsHTMLContentSink.cpp | 5 ++++- mozilla/layout/html/style/src/nsCSSLoader.cpp | 5 ++++- mozilla/layout/style/nsCSSLoader.cpp | 5 ++++- 11 files changed, 32 insertions(+), 13 deletions(-) diff --git a/mozilla/content/base/public/nsIDocument.h b/mozilla/content/base/public/nsIDocument.h index 4078c0144ec..8cdb7fc91f7 100644 --- a/mozilla/content/base/public/nsIDocument.h +++ b/mozilla/content/base/public/nsIDocument.h @@ -117,7 +117,7 @@ public: /** * Return the LoadGroup for the document. May return null. */ - virtual nsILoadGroup* GetDocumentLoadGroup() const = 0; + NS_IMETHOD GetDocumentLoadGroup(nsILoadGroup** aGroup) const = 0; /** * Return the base URL for realtive URLs in the document. May return null (or the document URL). diff --git a/mozilla/content/base/src/nsDocument.cpp b/mozilla/content/base/src/nsDocument.cpp index d0c7ad7b06c..d6dbfe35172 100644 --- a/mozilla/content/base/src/nsDocument.cpp +++ b/mozilla/content/base/src/nsDocument.cpp @@ -961,10 +961,12 @@ nsDocument::GetContentType(nsString& aContentType) const return NS_ERROR_NOT_IMPLEMENTED; } -nsILoadGroup* nsDocument::GetDocumentLoadGroup() const +NS_IMETHODIMP +nsDocument::GetDocumentLoadGroup(nsILoadGroup **aGroup) const { + *aGroup = mDocumentLoadGroup; NS_IF_ADDREF(mDocumentLoadGroup); - return mDocumentLoadGroup; + return NS_OK; } NS_IMETHODIMP diff --git a/mozilla/content/base/src/nsDocument.h b/mozilla/content/base/src/nsDocument.h index 35a16caad27..e8d4a022746 100644 --- a/mozilla/content/base/src/nsDocument.h +++ b/mozilla/content/base/src/nsDocument.h @@ -148,7 +148,7 @@ public: /** * Return the LoadGroup for the document. May return null. */ - virtual nsILoadGroup* GetDocumentLoadGroup() const; + NS_IMETHOD GetDocumentLoadGroup(nsILoadGroup **aGroup) const; /** * Return the base URL for realtive URLs in the document. May return null (or the document URL). diff --git a/mozilla/content/html/document/src/nsHTMLContentSink.cpp b/mozilla/content/html/document/src/nsHTMLContentSink.cpp index e523acb70c7..26b1be39cf5 100644 --- a/mozilla/content/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLContentSink.cpp @@ -3351,10 +3351,13 @@ HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode& aNode) // onto it as opaque data. NS_ADDREF(this); + nsCOMPtr loadGroup; nsIUnicharStreamLoader* loader; + + mDocument->GetDocumentLoadGroup(getter_AddRefs(loadGroup)); rv = NS_NewUnicharStreamLoader(&loader, url, - nsCOMPtr(mDocument->GetDocumentLoadGroup()), + loadGroup, (nsStreamCompleteFunc)nsDoneLoadingScript, (void *)this); NS_RELEASE(url); diff --git a/mozilla/content/html/style/src/nsCSSLoader.cpp b/mozilla/content/html/style/src/nsCSSLoader.cpp index fe431432f68..cc5976f33fd 100644 --- a/mozilla/content/html/style/src/nsCSSLoader.cpp +++ b/mozilla/content/html/style/src/nsCSSLoader.cpp @@ -1024,8 +1024,11 @@ CSSLoaderImpl::LoadSheet(URLKey& aKey, SheetLoadData* aData) #ifdef NS_DEBUG mSyncCallback = PR_TRUE; #endif + nsCOMPtr loadGroup; + mDocument->GetDocumentLoadGroup(getter_AddRefs(loadGroup)); + result = NS_NewUnicharStreamLoader(&loader, urlClone, - nsCOMPtr(mDocument->GetDocumentLoadGroup()), + loadGroup, DoneLoadingStyle, aData); #ifdef NS_DEBUG mSyncCallback = PR_FALSE; diff --git a/mozilla/layout/base/public/nsIDocument.h b/mozilla/layout/base/public/nsIDocument.h index 4078c0144ec..8cdb7fc91f7 100644 --- a/mozilla/layout/base/public/nsIDocument.h +++ b/mozilla/layout/base/public/nsIDocument.h @@ -117,7 +117,7 @@ public: /** * Return the LoadGroup for the document. May return null. */ - virtual nsILoadGroup* GetDocumentLoadGroup() const = 0; + NS_IMETHOD GetDocumentLoadGroup(nsILoadGroup** aGroup) const = 0; /** * Return the base URL for realtive URLs in the document. May return null (or the document URL). diff --git a/mozilla/layout/base/src/nsDocument.cpp b/mozilla/layout/base/src/nsDocument.cpp index d0c7ad7b06c..d6dbfe35172 100644 --- a/mozilla/layout/base/src/nsDocument.cpp +++ b/mozilla/layout/base/src/nsDocument.cpp @@ -961,10 +961,12 @@ nsDocument::GetContentType(nsString& aContentType) const return NS_ERROR_NOT_IMPLEMENTED; } -nsILoadGroup* nsDocument::GetDocumentLoadGroup() const +NS_IMETHODIMP +nsDocument::GetDocumentLoadGroup(nsILoadGroup **aGroup) const { + *aGroup = mDocumentLoadGroup; NS_IF_ADDREF(mDocumentLoadGroup); - return mDocumentLoadGroup; + return NS_OK; } NS_IMETHODIMP diff --git a/mozilla/layout/base/src/nsDocument.h b/mozilla/layout/base/src/nsDocument.h index 35a16caad27..e8d4a022746 100644 --- a/mozilla/layout/base/src/nsDocument.h +++ b/mozilla/layout/base/src/nsDocument.h @@ -148,7 +148,7 @@ public: /** * Return the LoadGroup for the document. May return null. */ - virtual nsILoadGroup* GetDocumentLoadGroup() const; + NS_IMETHOD GetDocumentLoadGroup(nsILoadGroup **aGroup) const; /** * Return the base URL for realtive URLs in the document. May return null (or the document URL). diff --git a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp index e523acb70c7..26b1be39cf5 100644 --- a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp @@ -3351,10 +3351,13 @@ HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode& aNode) // onto it as opaque data. NS_ADDREF(this); + nsCOMPtr loadGroup; nsIUnicharStreamLoader* loader; + + mDocument->GetDocumentLoadGroup(getter_AddRefs(loadGroup)); rv = NS_NewUnicharStreamLoader(&loader, url, - nsCOMPtr(mDocument->GetDocumentLoadGroup()), + loadGroup, (nsStreamCompleteFunc)nsDoneLoadingScript, (void *)this); NS_RELEASE(url); diff --git a/mozilla/layout/html/style/src/nsCSSLoader.cpp b/mozilla/layout/html/style/src/nsCSSLoader.cpp index fe431432f68..cc5976f33fd 100644 --- a/mozilla/layout/html/style/src/nsCSSLoader.cpp +++ b/mozilla/layout/html/style/src/nsCSSLoader.cpp @@ -1024,8 +1024,11 @@ CSSLoaderImpl::LoadSheet(URLKey& aKey, SheetLoadData* aData) #ifdef NS_DEBUG mSyncCallback = PR_TRUE; #endif + nsCOMPtr loadGroup; + mDocument->GetDocumentLoadGroup(getter_AddRefs(loadGroup)); + result = NS_NewUnicharStreamLoader(&loader, urlClone, - nsCOMPtr(mDocument->GetDocumentLoadGroup()), + loadGroup, DoneLoadingStyle, aData); #ifdef NS_DEBUG mSyncCallback = PR_FALSE; diff --git a/mozilla/layout/style/nsCSSLoader.cpp b/mozilla/layout/style/nsCSSLoader.cpp index fe431432f68..cc5976f33fd 100644 --- a/mozilla/layout/style/nsCSSLoader.cpp +++ b/mozilla/layout/style/nsCSSLoader.cpp @@ -1024,8 +1024,11 @@ CSSLoaderImpl::LoadSheet(URLKey& aKey, SheetLoadData* aData) #ifdef NS_DEBUG mSyncCallback = PR_TRUE; #endif + nsCOMPtr loadGroup; + mDocument->GetDocumentLoadGroup(getter_AddRefs(loadGroup)); + result = NS_NewUnicharStreamLoader(&loader, urlClone, - nsCOMPtr(mDocument->GetDocumentLoadGroup()), + loadGroup, DoneLoadingStyle, aData); #ifdef NS_DEBUG mSyncCallback = PR_FALSE;