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
This commit is contained in:
serge%netscape.com
2002-09-18 20:16:16 +00:00
parent a86d496575
commit dbd858b2a5

View File

@@ -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<nsIPluginInstance> 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<nsIPluginInstance> 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<nsIDocument> doc;
nsCOMPtr<nsIPluginInstancePeer> peer;
rv = aInstance->GetPeer(getter_AddRefs(peer));
rv = aInstance->GetPeer(NS_REINTERPRET_CAST(nsIPluginInstancePeer **, &peer));
if (NS_SUCCEEDED(rv) && peer)
{
nsCOMPtr<nsPIPluginInstancePeer> privpeer(do_QueryInterface(peer));