diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx index dbd005a2d680..d46960c97eb5 100644 --- a/cppu/source/typelib/typelib.cxx +++ b/cppu/source/typelib/typelib.cxx @@ -29,6 +29,10 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_cppu.hxx" +#if OSL_DEBUG_LEVEL > 1 +#include +#endif + #include #include #include @@ -335,7 +339,21 @@ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () ) delete pWeakMap; pWeakMap = 0; } +#ifndef CPPU_LEAK_STATIC_DATA #if OSL_DEBUG_LEVEL > 1 +#define MYASSERT(x) if (x != 0) fprintf(stderr, "### "#x" = %d, should be zero!!!\n", x); + MYASSERT (nTypeDescriptionCount ); + MYASSERT( nCompoundTypeDescriptionCount ); + MYASSERT( nUnionTypeDescriptionCount ); + MYASSERT( nIndirectTypeDescriptionCount ); + MYASSERT( nArrayTypeDescriptionCount ); + MYASSERT( nEnumTypeDescriptionCount ); + MYASSERT( nInterfaceMethodTypeDescriptionCount ); + MYASSERT( nInterfaceAttributeTypeDescriptionCount ); + MYASSERT( nInterfaceTypeDescriptionCount ); + MYASSERT( nTypeDescriptionReferenceCount ); +#undef MYASSERT + OSL_ASSERT( nTypeDescriptionCount == 0 ); OSL_ASSERT( nCompoundTypeDescriptionCount == 0 ); OSL_ASSERT( nUnionTypeDescriptionCount == 0 ); @@ -351,6 +369,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..a94ea7c8dafe 100644 --- a/cppu/util/target.pmk +++ b/cppu/util/target.pmk @@ -51,3 +51,7 @@ CFLAGS += -Ob0 .ENDIF .ENDIF + +.IF "$(COM)$(CPU)" == "MSCX" +CFLAGS += -DCPPU_LEAK_STATIC_DATA +.ENDIF