From dbd858b2a5dc11417715650a4ba53e96586ea5a4 Mon Sep 17 00:00:00 2001 From: "serge%netscape.com" Date: Wed, 18 Sep 2002 20:16:16 +0000 Subject: [PATCH] fix 168893, nsIPluginManager::GetURL leaks an nsIPluginInstance, r=peterl, sr=beard git-svn-id: svn://10.0.0.236/trunk@129952 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp b/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp index 57b0ec5e665..719f47b819e 100644 --- a/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp +++ b/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp @@ -2973,7 +2973,6 @@ NS_IMETHODIMP nsPluginHostImpl::GetURLWithHeaders(nsISupports* pluginInst, const char* getHeaders) { nsAutoString string; string.AssignWithConversion(url); - nsIPluginInstance *instance; nsresult rv; // we can only send a stream back to the plugin (as specified by a @@ -2981,7 +2980,7 @@ NS_IMETHODIMP nsPluginHostImpl::GetURLWithHeaders(nsISupports* pluginInst, if(target == nsnull && streamListener == nsnull) return NS_ERROR_ILLEGAL_VALUE; - rv = pluginInst->QueryInterface(kIPluginInstanceIID, (void **)&instance); + nsCOMPtr instance = do_QueryInterface(pluginInst, &rv); if (NS_SUCCEEDED(rv)) { @@ -3031,7 +3030,6 @@ NS_IMETHODIMP nsPluginHostImpl::PostURL(nsISupports* pluginInst, const char* postHeaders) { nsAutoString string; string.AssignWithConversion(url); - nsIPluginInstance *instance; nsresult rv; // we can only send a stream back to the plugin (as specified @@ -3040,8 +3038,7 @@ NS_IMETHODIMP nsPluginHostImpl::PostURL(nsISupports* pluginInst, if(target == nsnull && streamListener == nsnull) return NS_ERROR_ILLEGAL_VALUE; - rv = pluginInst->QueryInterface(kIPluginInstanceIID, (void **)&instance); - + nsCOMPtr instance = do_QueryInterface(pluginInst, &rv); if (NS_SUCCEEDED(rv)) { char *dataToPost; @@ -3097,8 +3094,6 @@ NS_IMETHODIMP nsPluginHostImpl::PostURL(nsISupports* pluginInst, rv = NewPluginURLStream(string, instance, streamListener, (const char*)dataToPost, isFile, postDataLen, postHeaders, postHeadersLength); - - NS_RELEASE(instance); if (isFile) { nsCRT::free(dataToPost); } @@ -5586,7 +5581,6 @@ NS_IMETHODIMP nsPluginHostImpl::NewPluginURLStream(const nsString& aURL, nsCOMPtr doc; nsCOMPtr peer; rv = aInstance->GetPeer(getter_AddRefs(peer)); - rv = aInstance->GetPeer(NS_REINTERPRET_CAST(nsIPluginInstancePeer **, &peer)); if (NS_SUCCEEDED(rv) && peer) { nsCOMPtr privpeer(do_QueryInterface(peer));