--- framework/inc/threadhelp/lockhelper.hxx.memleak 2003-11-17 14:54:34.000000000 -0500 +++ framework/inc/threadhelp/lockhelper.hxx 2003-11-17 15:05:09.000000000 -0500 @@ -217,6 +217,7 @@ private: ELockType m_eLockType ; + bool m_bSolarMutexAlloced ; mutable FairRWLock* m_pFairRWLock ; mutable ::osl::Mutex* m_pOwnMutex ; --- framework/source/threadhelp/lockhelper.cxx.memleak 2003-11-17 14:54:42.000000000 -0500 +++ framework/source/threadhelp/lockhelper.cxx 2003-11-17 15:16:05.000000000 -0500 @@ -122,6 +122,7 @@ , m_pSolarMutex ( NULL ) , m_pFairRWLock ( NULL ) , m_pShareableOslMutex( NULL ) + , m_bSolarMutexAlloced( false ) { m_eLockType = implts_getLockType(); switch( m_eLockType ) @@ -134,6 +135,7 @@ case E_SOLARMUTEX : { if( pSolarMutex == NULL ) { + m_bSolarMutexAlloced = true; m_pSolarMutex = new ::vos::OMutex; } else @@ -184,6 +186,8 @@ } if( m_pSolarMutex != NULL ) { + if ( true == m_bSolarMutexAlloced ) + delete (::vos::OMutex *)(&m_pSolarMutex); m_pSolarMutex = NULL; } if( m_pFairRWLock != NULL )