diff --git a/xpcom/base/nsAutoPtr.h b/xpcom/base/nsAutoPtr.h index f6684fd6cc3f..f3fa37f6c40b 100644 --- a/xpcom/base/nsAutoPtr.h +++ b/xpcom/base/nsAutoPtr.h @@ -78,7 +78,12 @@ class nsAutoPtr */ private: - void** begin_assignment(); + void** + begin_assignment() + { + assign(0); + return NS_REINTERPRET_CAST(void**, &mRawPtr); + } void assign( T* newPtr ) @@ -230,14 +235,6 @@ class nsAutoPtr } }; -template -void** -nsAutoPtr::begin_assignment() - { - assign(0); - return NS_REINTERPRET_CAST(void**, &mRawPtr); - } - #ifdef CANT_RESOLVE_CPP_CONST_AMBIGUITY // This is the broken version for IRIX, which can't handle the version below. @@ -521,7 +518,12 @@ class nsAutoArrayPtr */ private: - void** begin_assignment(); + void** + begin_assignment() + { + assign(0); + return NS_REINTERPRET_CAST(void**, &mRawPtr); + } void assign( T* newPtr ) @@ -673,14 +675,6 @@ class nsAutoArrayPtr } }; -template -void** -nsAutoArrayPtr::begin_assignment() - { - assign(0); - return NS_REINTERPRET_CAST(void**, &mRawPtr); - } - #ifdef CANT_RESOLVE_CPP_CONST_AMBIGUITY // This is the broken version for IRIX, which can't handle the version below. @@ -965,8 +959,21 @@ class nsRefPtr */ private: - void assign_with_AddRef( T* ); - void** begin_assignment(); + + void + assign_with_AddRef( T* rawPtr ) + { + if ( rawPtr ) + rawPtr->AddRef(); + assign_assuming_AddRef(rawPtr); + } + + void** + begin_assignment() + { + assign_assuming_AddRef(0); + return NS_REINTERPRET_CAST(void**, &mRawPtr); + } void assign_assuming_AddRef( T* newPtr ) @@ -1130,23 +1137,6 @@ class nsRefPtr } }; -template -void -nsRefPtr::assign_with_AddRef( T* rawPtr ) - { - if ( rawPtr ) - rawPtr->AddRef(); - assign_assuming_AddRef(rawPtr); - } - -template -void** -nsRefPtr::begin_assignment() - { - assign_assuming_AddRef(0); - return NS_REINTERPRET_CAST(void**, &mRawPtr); - } - #ifdef CANT_RESOLVE_CPP_CONST_AMBIGUITY // This is the broken version for IRIX, which can't handle the version below.