diff options
author | Tor Lillqvist <tlillqvist@novell.com> | 2010-11-10 18:33:43 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@hemulen.(none)> | 2010-11-10 18:40:38 +0200 |
commit | 8e7f25848a027c46f433318e4cf24dc15c3446d1 (patch) | |
tree | 85ae52793836cd84e6bbfc4547a684a1842728f4 /cppu | |
parent | 77e32f337a5b48edd7250fbd8a98b696591558e9 (diff) |
Add workaround to avoid crash when exiting LibreOffice
Reintroduce the horrible CPPU_LEAK_STATIC_DATA hack used in OOo 3.2.1,
but only for Windows builds. No idea what causes the crash. See
fdo#31494. Don't know if this hack has some bad consequences then,
i#107490 seems to say so.
Diffstat (limited to 'cppu')
-rw-r--r-- | cppu/source/typelib/typelib.cxx | 2 | ||||
-rw-r--r-- | cppu/util/target.pmk | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx index 3cf9abe0934e..c248af3228e5 100644 --- a/cppu/source/typelib/typelib.cxx +++ b/cppu/source/typelib/typelib.cxx @@ -275,6 +275,7 @@ inline void TypeDescriptor_Init_Impl::callChain( //__________________________________________________________________________________________________ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () ) { +#ifndef CPPU_LEAK_STATIC_DATA if( pCache ) { TypeDescriptionList_Impl::const_iterator aIt = pCache->begin(); @@ -354,6 +355,7 @@ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () ) #endif delete pCallbacks; pCallbacks = 0; +#endif // CPPU_LEAK_STATIC_DATA if( pMutex ) { diff --git a/cppu/util/target.pmk b/cppu/util/target.pmk index 3befcb154753..70be64b8e3f4 100644 --- a/cppu/util/target.pmk +++ b/cppu/util/target.pmk @@ -45,9 +45,16 @@ CFLAGS += -O .ELSE -# msvc++: no inlining .IF "$(COM)" == "MSC" +# msvc++: no inlining CFLAGS += -Ob0 +.IF "$(cppu_no_leak)" == "" +.IF "$(bndchk)" == "" +# msvc++: workaround for strange crash at exit: just don't do the +# cleanup of types and whatnot... +CFLAGS += -DCPPU_LEAK_STATIC_DATA +.ENDIF +.ENDIF .ENDIF .ENDIF |