diff --git a/mozilla/xpcom/glue/nsCOMPtr.cpp b/mozilla/xpcom/glue/nsCOMPtr.cpp index 8197310b6d8..bce7e976d54 100644 --- a/mozilla/xpcom/glue/nsCOMPtr.cpp +++ b/mozilla/xpcom/glue/nsCOMPtr.cpp @@ -92,64 +92,64 @@ nsCOMPtr_base::assign_with_AddRef( nsISupports* rawPtr ) void nsCOMPtr_base::assign_from_qi( const nsQueryInterface qi, const nsIID& iid ) { - union { nsISupports *mSupports; void *mVoid; } newRawPtr; - if ( NS_FAILED( qi(iid, &newRawPtr.mVoid) ) ) - newRawPtr.mSupports = 0; - assign_assuming_AddRef(newRawPtr.mSupports); + void* newRawPtr; + if ( NS_FAILED( qi(iid, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(nsISupports*, newRawPtr)); } void nsCOMPtr_base::assign_from_qi_with_error( const nsQueryInterfaceWithError& qi, const nsIID& iid ) { - union { nsISupports* mSupports; void *mVoid; } newRawPtr; - if ( NS_FAILED( qi(iid, &newRawPtr.mVoid) ) ) - newRawPtr.mSupports = 0; - assign_assuming_AddRef(newRawPtr.mSupports); + void* newRawPtr; + if ( NS_FAILED( qi(iid, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(nsISupports*, newRawPtr)); } void nsCOMPtr_base::assign_from_gs_cid( const nsGetServiceByCID gs, const nsIID& iid ) { - union { nsISupports* mSupports; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(iid, &newRawPtr.mVoid) ) ) - newRawPtr.mSupports = 0; - assign_assuming_AddRef(newRawPtr.mSupports); + void* newRawPtr; + if ( NS_FAILED( gs(iid, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(nsISupports*, newRawPtr)); } void nsCOMPtr_base::assign_from_gs_cid_with_error( const nsGetServiceByCIDWithError& gs, const nsIID& iid ) { - union { nsISupports* mSupports; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(iid, &newRawPtr.mVoid) ) ) - newRawPtr.mSupports = 0; - assign_assuming_AddRef(newRawPtr.mSupports); + void* newRawPtr; + if ( NS_FAILED( gs(iid, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(nsISupports*, newRawPtr)); } void nsCOMPtr_base::assign_from_gs_contractid( const nsGetServiceByContractID gs, const nsIID& iid ) { - union { nsISupports* mSupports; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(iid, &newRawPtr.mVoid) ) ) - newRawPtr.mSupports = 0; - assign_assuming_AddRef(newRawPtr.mSupports); + void* newRawPtr; + if ( NS_FAILED( gs(iid, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(nsISupports*, newRawPtr)); } void nsCOMPtr_base::assign_from_gs_contractid_with_error( const nsGetServiceByContractIDWithError& gs, const nsIID& iid ) { - union { nsISupports* mSupports; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(iid, &newRawPtr.mVoid) ) ) - newRawPtr.mSupports = 0; - assign_assuming_AddRef(newRawPtr.mSupports); + void* newRawPtr; + if ( NS_FAILED( gs(iid, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(nsISupports*, newRawPtr)); } void nsCOMPtr_base::assign_from_helper( const nsCOMPtr_helper& helper, const nsIID& iid ) { - union { nsISupports* mSupports; void *mVoid; } newRawPtr; - if ( NS_FAILED( helper(iid, &newRawPtr.mVoid) ) ) - newRawPtr.mSupports = 0; - assign_assuming_AddRef(newRawPtr.mSupports); + void* newRawPtr; + if ( NS_FAILED( helper(iid, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(nsISupports*, newRawPtr)); } void** diff --git a/mozilla/xpcom/glue/nsCOMPtr.h b/mozilla/xpcom/glue/nsCOMPtr.h index 7c3eccd069c..938d0adf882 100644 --- a/mozilla/xpcom/glue/nsCOMPtr.h +++ b/mozilla/xpcom/glue/nsCOMPtr.h @@ -1240,70 +1240,70 @@ template void nsCOMPtr::assign_from_qi( const nsQueryInterface qi, const nsIID& aIID ) { - union { T* mT; void *mVoid; } newRawPtr; - if ( NS_FAILED( qi(aIID, &newRawPtr.mVoid) ) ) - newRawPtr.mT = 0; - assign_assuming_AddRef(newRawPtr.mT); + void* newRawPtr; + if ( NS_FAILED( qi(aIID, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(T*, newRawPtr)); } template void nsCOMPtr::assign_from_qi_with_error( const nsQueryInterfaceWithError& qi, const nsIID& aIID ) { - union { T* mT; void *mVoid; } newRawPtr; - if ( NS_FAILED( qi(aIID, &newRawPtr.mVoid) ) ) - newRawPtr.mT = 0; - assign_assuming_AddRef(newRawPtr.mT); + void* newRawPtr; + if ( NS_FAILED( qi(aIID, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(T*, newRawPtr)); } template void nsCOMPtr::assign_from_gs_cid( const nsGetServiceByCID gs, const nsIID& aIID ) { - union { T* mT; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(aIID, &newRawPtr.mVoid) ) ) - newRawPtr.mT = 0; - assign_assuming_AddRef(newRawPtr.mT); + void* newRawPtr; + if ( NS_FAILED( gs(aIID, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(T*, newRawPtr)); } template void nsCOMPtr::assign_from_gs_cid_with_error( const nsGetServiceByCIDWithError& gs, const nsIID& aIID ) { - union { T* mT; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(aIID, &newRawPtr.mVoid) ) ) - newRawPtr.mT = 0; - assign_assuming_AddRef(newRawPtr.mT); + void* newRawPtr; + if ( NS_FAILED( gs(aIID, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(T*, newRawPtr)); } template void nsCOMPtr::assign_from_gs_contractid( const nsGetServiceByContractID gs, const nsIID& aIID ) { - union { T* mT; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(aIID, &newRawPtr.mVoid) ) ) - newRawPtr.mT = 0; - assign_assuming_AddRef(newRawPtr.mT); + void* newRawPtr; + if ( NS_FAILED( gs(aIID, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(T*, newRawPtr)); } template void nsCOMPtr::assign_from_gs_contractid_with_error( const nsGetServiceByContractIDWithError& gs, const nsIID& aIID ) { - union { T* mT; void *mVoid; } newRawPtr; - if ( NS_FAILED( gs(aIID, &newRawPtr.mVoid) ) ) - newRawPtr.mT = 0; - assign_assuming_AddRef(newRawPtr.mT); + void* newRawPtr; + if ( NS_FAILED( gs(aIID, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(T*, newRawPtr)); } template void nsCOMPtr::assign_from_helper( const nsCOMPtr_helper& helper, const nsIID& aIID ) { - union { T* mT; void *mVoid; } newRawPtr; - if ( NS_FAILED( helper(aIID, &newRawPtr.mVoid) ) ) - newRawPtr.mT = 0; - assign_assuming_AddRef(newRawPtr.mT); + void* newRawPtr; + if ( NS_FAILED( helper(aIID, &newRawPtr) ) ) + newRawPtr = 0; + assign_assuming_AddRef(NS_STATIC_CAST(T*, newRawPtr)); } template