not part of build, more for bug 162115:

- fix some spelling, add documentation
- add NS_NewArray(), including one that takes an existing nsCOMArray<T>
- implement copy constructor for nsCOMArray_base, so that NS_NewArray can work
not part of build
This commit is contained in:
alecf@netscape.com
2002-09-30 23:02:31 +00:00
parent 7a0f25c401
commit 4939acab42
5 changed files with 125 additions and 17 deletions

View File

@@ -46,6 +46,9 @@ struct findIndexOfClosure
PRUint32 resultIndex;
};
static PRBool FindElementCallback(nsISupports* aElement, void* aClosure);
NS_IMPL_ISUPPORTS2(nsArray, nsIArray, nsIMutableArray)
nsArray::~nsArray()
@@ -80,8 +83,6 @@ nsArray::IndexOf(PRUint32 aStartIndex, nsISupports* aElement,
*aResult = mArray.IndexOf(aElement);
if (*aResult == -1)
return NS_ERROR_FAILURE;
NS_ADDREF(*aResult);
return NS_OK;
}
@@ -130,7 +131,8 @@ nsArray::Clear()
return NS_OK;
}
nsArray::FindElementCallback(void *aElement, void* aClosure)
PRBool
FindElementCallback(nsISupports *aElement, void* aClosure)
{
findIndexOfClosure* closure =
NS_STATIC_CAST(findIndexOfClosure*, aClosure);
@@ -144,3 +146,27 @@ nsArray::FindElementCallback(void *aElement, void* aClosure)
return PR_TRUE;
}
nsresult
NS_NewArray(nsIArray** aResult)
{
nsArray* arr = new nsArray;
if (!arr) return NS_ERROR_OUT_OF_MEMORY;
*aResult = NS_STATIC_CAST(nsIArray*,arr);
NS_ADDREF(*aResult);
return NS_OK;
}
nsresult
NS_NewArray(const nsCOMArray_base& aBaseArray, nsIArray** aResult)
{
nsArray* arr = new nsArray(aBaseArray);
if (!arr) return NS_ERROR_OUT_OF_MEMORY;
*aResult = NS_STATIC_CAST(nsIArray*, arr);
NS_ADDREF(*aResult);
return NS_OK;
}