diff --git a/xpcom/tests/TestCOMPtr.cpp b/xpcom/tests/TestCOMPtr.cpp index 4253e762eddf..6a20eb867a7c 100644 --- a/xpcom/tests/TestCOMPtr.cpp +++ b/xpcom/tests/TestCOMPtr.cpp @@ -69,6 +69,7 @@ typedef unsigned long NS_RESULT; nsresult CreateIFoo( void** ); nsresult CreateIBar( void** result ); void AnIFooPtrPtrContext( IFoo** ); + void AnISupportsPtrPtrContext( nsISupports** ); void AVoidPtrPtrContext( void** ); void set_a_IFoo( nsCOMPtr* result ); nsCOMPtr return_a_IFoo(); @@ -291,6 +292,11 @@ AVoidPtrPtrContext( void** ) { } +void +AnISupportsPtrPtrContext( nsISupports** ) + { + } + // Optimism #define TEST_EXCEPTIONS 1 @@ -612,6 +618,23 @@ main() cout << "### End Test 24" << endl; + { + nsCOMPtr fooP; + + AnIFooPtrPtrContext( getter_AddRefs(fooP) ); + AVoidPtrPtrContext( getter_AddRefs(fooP) ); + AnISupportsPtrPtrContext( getter_AddRefs(fooP) ); + } + + + { + nsCOMPtr supportsP; + + AVoidPtrPtrContext( getter_AddRefs(supportsP) ); + AnISupportsPtrPtrContext( getter_AddRefs(supportsP) ); + } + + cout << endl << "### Test 25: will a static |nsCOMPtr| |Release| before program termination?" << endl; gFoop = do_QueryInterface(new IFoo);