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();
}