Kaydet (Commit) cdb4efad authored tarafından Michael Stahl's avatar Michael Stahl

connectivity: disable connectivity::release() for now

This bizarre thing essentially does the same as
WeakComponentImplHelperBase::release(), except that
1) it forgets to call disposeWeakConnectionPoint()
2) it doesn't catch exceptions from dispose()
3) it restores the m_xParent member after the dispose() call
4) it's racy because the "else" branch may be executed at a time
   when another thread has already concurrently deleted the object

This is rather mysterious and there is no obvious reason why a manual
dispose() call should clear m_xParent (as the users tend to do, by calling
dispose_ChildImpl() from their disposing()), but a dispose() called from
release() should restore m_xParent again.

Let's try to stop doing this madness and see if anything breaks.

Change-Id: I88a60fe1a7eeb625442faf436c9a3deb3c59941c
Reviewed-on: https://gerrit.libreoffice.org/26554Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMichael Stahl <mstahl@redhat.com>
üst 337b38ab
......@@ -72,11 +72,13 @@ namespace connectivity
}
void relase_ChildImpl()
{
#if 0
::connectivity::release(m_pDerivedImplementation->m_refCount,
m_pDerivedImplementation->WEAK::rBHelper,
m_xParent,
m_pDerivedImplementation);
#endif
m_pDerivedImplementation->WEAK::release();
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment