зеркало из https://github.com/mozilla/pjs.git
bug #50721: sr=brendan, r=dbaron. Add |do_QueryElementAt|.
This commit is contained in:
Родитель
221a000a29
Коммит
88720ed1d1
|
@ -17,7 +17,8 @@
|
|||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Contributor(s):
|
||||
* Scott Collins <scc@mozilla.org>: |do_QueryElementAt|
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
@ -40,3 +41,37 @@ interface nsICollection : nsISupports
|
|||
void Clear();
|
||||
|
||||
};
|
||||
|
||||
%{C++
|
||||
|
||||
#ifndef nsCOMPtr_h__
|
||||
#include "nsCOMPtr.h"
|
||||
#endif
|
||||
|
||||
class NS_EXPORT nsQueryElementAt : public nsCOMPtr_helper
|
||||
{
|
||||
public:
|
||||
nsQueryElementAt( nsICollection* aCollection, PRUint32 aIndex, nsresult* aErrorPtr )
|
||||
: mCollection(aCollection),
|
||||
mIndex(aIndex),
|
||||
mErrorPtr(aErrorPtr)
|
||||
{
|
||||
// nothing else to do here
|
||||
}
|
||||
|
||||
virtual nsresult operator()( const nsIID& aIID, void** ) const;
|
||||
|
||||
private:
|
||||
nsICollection* mCollection;
|
||||
PRUint32 mIndex;
|
||||
nsresult* mErrorPtr;
|
||||
};
|
||||
|
||||
inline
|
||||
const nsQueryElementAt
|
||||
do_QueryElementAt( nsICollection* aCollection, PRUint32 aIndex, nsresult* aErrorPtr = 0 )
|
||||
{
|
||||
return nsQueryElementAt(aCollection, aIndex, aErrorPtr);
|
||||
}
|
||||
|
||||
%}
|
||||
|
|
|
@ -17,7 +17,8 @@
|
|||
* Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Contributor(s):
|
||||
* Scott Collins <scc@mozilla.org>: |do_QueryElementAt|
|
||||
* Pierre Phaneuf <pp@ludusdesign.com>
|
||||
*/
|
||||
|
||||
|
@ -25,6 +26,19 @@
|
|||
#include "nsSupportsArrayEnumerator.h"
|
||||
#include <string.h>
|
||||
|
||||
nsresult
|
||||
nsQueryElementAt::operator()( const nsIID& aIID, void** aResult ) const
|
||||
{
|
||||
nsresult status = mCollection
|
||||
? mCollection->QueryElementAt(mIndex, aIID, aResult)
|
||||
: NS_ERROR_NULL_POINTER;
|
||||
|
||||
if ( mErrorPtr )
|
||||
*mErrorPtr = status;
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static const PRUint32 kGrowArrayBy = 8;
|
||||
|
||||
nsSupportsArray::nsSupportsArray()
|
||||
|
|
Загрузка…
Ссылка в новой задаче