NS_IMETHODIMP nsSupportsArray::Clone(nsISupportsArray* *result) { nsresult rv; nsISupportsArray* newArray; rv = NS_NewISupportsArray(&newArray); PRBool ok = EnumerateForwards(CopyElement, newArray); if (!ok) return NS_ERROR_OUT_OF_MEMORY; *result = newArray; return NS_OK; }
NS_IMETHODIMP nsSupportsArray::Clone(nsISupportsArray** aResult) { nsCOMPtr<nsISupportsArray> newArray; nsresult rv = NS_NewISupportsArray(getter_AddRefs(newArray)); NS_ENSURE_SUCCESS(rv, rv); bool ok = EnumerateForwards(CopyElement, newArray); NS_ENSURE_TRUE(ok, NS_ERROR_OUT_OF_MEMORY); newArray.forget(aResult); return NS_OK; }
size_t nsVoidArray::SizeOfExcludingThis( nsVoidArraySizeOfElementIncludingThisFunc aSizeOfElementIncludingThis, nsMallocSizeOfFun aMallocSizeOf, void* aData) const { size_t n = 0; // Measure the element storage. if (mImpl) { n += aMallocSizeOf(mImpl); } // Measure things pointed to by the elements. if (aSizeOfElementIncludingThis) { SizeOfElementIncludingThisData data2 = { 0, aSizeOfElementIncludingThis, aMallocSizeOf, aData }; EnumerateForwards(SizeOfElementIncludingThisEnumerator, &data2); n += data2.mSize; } return n; }