Part 2 of the fix for bug 413281 (Firefox leaks when Yahoo Toolbar is installed). r/sr=sicking.

This commit is contained in:
peterv@propagandism.org 2008-02-07 03:37:18 -08:00
parent 1a7487763f
commit ab07d4da83
3 changed files with 20 additions and 3 deletions

View File

@ -54,7 +54,18 @@ nsArray::~nsArray()
{
Clear();
}
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsArray)
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsArray)
NS_IMPL_CYCLE_COLLECTION_CLASS(nsArray)
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsArray)
tmp->Clear();
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsArray)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMARRAY(mArray)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMETHODIMP
nsArray::GetLength(PRUint32* aLength)
{

View File

@ -42,6 +42,7 @@
#include "nsIMutableArray.h"
#include "nsCOMArray.h"
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#define NS_ARRAY_CLASSNAME \
"nsIArray implementation"
@ -63,7 +64,8 @@ public:
nsArray(const nsCOMArray_base& aBaseArray) : mArray(aBaseArray)
{ }
NS_DECL_ISUPPORTS
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS(nsArray)
NS_DECL_NSIARRAY
NS_DECL_NSIMUTABLEARRAY

View File

@ -34,7 +34,11 @@
%pseudo-iid nsIByteBuffer e4a6e4b0-93b4-11d1-895b-006008911b81
%pseudo-iid nsIUnicharBuffer 14cf6970-93b5-11d1-895b-006008911b81
NS_IMPL_ISUPPORTS2(nsArray, nsIArray, nsIMutableArray)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsArray)
NS_INTERFACE_MAP_ENTRY(nsIArray)
NS_INTERFACE_MAP_ENTRY(nsIMutableArray)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIMutableArray)
NS_INTERFACE_MAP_END
NS_IMPL_ISUPPORTS1(nsSimpleProperty, nsIProperty)