[Libreoffice-commits] .: Branch 'libreoffice-3-3' - cppu/source cppu/util

Tor Lillqvist tml at kemper.freedesktop.org
Wed Nov 10 08:41:39 PST 2010


 cppu/source/typelib/typelib.cxx |    2 ++
 cppu/util/target.pmk            |    9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

New commits:
commit 146e2fbca20f5cba3410d3d042ae6222a565dd7e
Author: Tor Lillqvist <tlillqvist at novell.com>
Date:   Wed Nov 10 18:33:43 2010 +0200

    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.

diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx
index 10a7cb1..738f35d 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 3befcb1..70be64b 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


More information about the Libreoffice-commits mailing list