diff options
Diffstat (limited to 'bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx')
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx b/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx index 74b2b7311509..b22335f0f18d 100644 --- a/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx @@ -35,9 +35,9 @@ #include <cxxabi.h> #include <boost/unordered_map.hpp> +#include <rtl/instance.hxx> #include <rtl/strbuf.hxx> #include <rtl/ustrbuf.hxx> -#include <rtl/instance.hxx> #include <osl/diagnose.h> #include <osl/mutex.hxx> @@ -216,6 +216,8 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR return rtti; } +struct RTTISingleton: public rtl::Static< RTTI, RTTISingleton > {}; + //-------------------------------------------------------------------------------------------------- static void deleteException( void * pExc ) { @@ -231,11 +233,6 @@ static void deleteException( void * pExc ) } } -namespace -{ - struct theRTTI : public rtl::Static<RTTI, theRTTI> {}; -} - //================================================================================================== void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ) { @@ -268,8 +265,7 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ) // destruct uno exception ::uno_any_destruct( pUnoExc, 0 ); // avoiding locked counts - static RTTI &rRTTI = theRTTI::get(); - rtti = rRTTI.getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr ); + rtti = (type_info *)RTTISingleton::get().getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr ); TYPELIB_DANGER_RELEASE( pTypeDescr ); OSL_ENSURE( rtti, "### no rtti for throwing exception!" ); if (! rtti) |