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/26554
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>