116972 r=dmose sr=sspitzer. fix leaks upon autocompletion in compose window and when sending mail. may

fix other leaks in address book because now we made it sure that it frees up when we do a copy
in CharPtrGuardArray... and don't do a copy when not needed.
This commit is contained in:
naving%netscape.com 2002-01-08 02:09:03 +00:00
parent e177e728b7
commit 910f36d70c
2 changed files with 15 additions and 7 deletions

View File

@ -66,10 +66,9 @@ nsresult CStringArrayToCharPtrArray::Convert (nsCStringArray& array,
{
if (copyElements == PR_TRUE)
(*returnPropertiesArray)[i] =
ToNewCString(*array[i]);
else
(*returnPropertiesArray)[i] = ToNewCString(*array[i]);
else
(*returnPropertiesArray)[i] = NS_CONST_CAST(char*, (*array[i]).get());
}
return NS_OK;
@ -120,10 +119,9 @@ nsresult StringArrayToPRUnicharPtrArray::Convert (nsStringArray& array,
{
if (copyElements == PR_TRUE)
(*returnPropertiesArray)[i] =
ToNewUnicode(*array[i]);
(*returnPropertiesArray)[i] = ToNewUnicode(*array[i]);
else
(*returnPropertiesArray)[i] = ToNewUnicode(*array[i]);
(*returnPropertiesArray)[i] = NS_CONST_CAST(PRUnichar*, (*array[i]).get());
}
return NS_OK;

View File

@ -104,6 +104,11 @@ private:
if (mFreeElements == PR_TRUE)
NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(mSize, mArray);
else
{
nsMemory::Free(mArray);
mArray=nsnull;
}
}
};
@ -192,7 +197,12 @@ private:
return;
if (mFreeElements == PR_TRUE)
NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(mSize, mArray);
NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(mSize, mArray);
else
{
nsMemory::Free(mArray);
mArray=nsnull;
}
}
};