diff options
Diffstat (limited to 'ucb')
-rw-r--r-- | ucb/source/ucp/tdoc/tdoc_stgelems.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ucb/source/ucp/tdoc/tdoc_stgelems.cxx b/ucb/source/ucp/tdoc/tdoc_stgelems.cxx index 96fb061ceb27..f5ae2804e703 100644 --- a/ucb/source/ucp/tdoc/tdoc_stgelems.cxx +++ b/ucb/source/ucp/tdoc/tdoc_stgelems.cxx @@ -191,11 +191,14 @@ void SAL_CALL Storage::acquire() void SAL_CALL Storage::release() throw () { - if ( osl_decrementInterlockedCount( &m_refCount ) == 0 ) - { + //#i120738, Storage::release overrides OWeakObject::release(), + //need call OWeakObject::release() to release OWeakObject::m_pWeakConnectionPoint + + if ( m_refCount == 1 ) m_xFactory->releaseElement( this ); - delete this; - } + + //delete this; + OWeakObject::release(); } //========================================================================= |