dbaccess: protection against double disposes.
Change-Id: I4ce2d00248b3d3d8370cc58155ea0607d4de482b
diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.cxx b/dbaccess/source/ui/app/AppDetailPageHelper.cxx
index 5b8da7e..9f264c4 100644
--- a/dbaccess/source/ui/app/AppDetailPageHelper.cxx
+++ b/dbaccess/source/ui/app/AppDetailPageHelper.cxx
@@ -257,9 +257,11 @@ void OAppDetailPageHelper::dispose()
}
m_aFL.disposeAndClear();
m_aTBPreview.disposeAndClear();
m_aBorder.disposeAndClear();
m_aPreview.disposeAndClear();
m_aDocumentInfo.disposeAndClear();
m_aBorder.disposeAndClear();
m_aMenu.reset();
vcl::Window::dispose();
}
diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx
index b50e746..37e08bb 100644
--- a/svtools/source/contnr/treelistbox.cxx
+++ b/svtools/source/contnr/treelistbox.cxx
@@ -1546,29 +1546,43 @@ SvTreeListBox::~SvTreeListBox()
void SvTreeListBox::dispose()
{
pImp->CallEventListeners( VCLEVENT_OBJECT_DYING );
delete pImp;
delete mpImpl->m_pLink;
ClearTabList();
delete pEdCtrl;
pEdCtrl = 0;
pModel->RemoveView( this );
if ( pModel->GetRefCount() == 0 )
if( pImp )
{
pModel->Clear();
delete pModel;
pModel = NULL;
pImp->CallEventListeners( VCLEVENT_OBJECT_DYING );
delete pImp;
pImp = NULL;
}
if( mpImpl )
{
delete mpImpl->m_pLink;
mpImpl->m_pLink = NULL;
ClearTabList();
delete pEdCtrl;
pEdCtrl = NULL;
if( pModel )
{
pModel->RemoveView( this );
if ( pModel->GetRefCount() == 0 )
{
pModel->Clear();
delete pModel;
pModel = NULL;
}
}
SvTreeListBox::RemoveBoxFromDDList_Impl( *this );
if( this == pDDSource )
pDDSource = 0;
if( this == pDDTarget )
pDDTarget = 0;
delete mpImpl;
mpImpl = NULL;
}
SvTreeListBox::RemoveBoxFromDDList_Impl( *this );
if( this == pDDSource )
pDDSource = 0;
if( this == pDDTarget )
pDDTarget = 0;
delete mpImpl;
Control::dispose();
}