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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user