diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2015-03-02 22:02:19 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-04-09 22:35:14 +0100 |
commit | 954e5e4b7820c5db3a6720dc9dc27e49cee449ac (patch) | |
tree | a5136c84a45d3861f7271b9eced37e33aa274658 /basctl | |
parent | e8284454f517d29a29f95a347a38730ded047f41 (diff) |
prophylactic double dispose audit.
Change-Id: Ia18c0b7a76fb0894efe33afaf69a0079c4583228
Diffstat (limited to 'basctl')
-rw-r--r-- | basctl/source/basicide/baside2b.cxx | 8 | ||||
-rw-r--r-- | basctl/source/basicide/baside3.cxx | 1 | ||||
-rw-r--r-- | basctl/source/basicide/bastype2.cxx | 3 | ||||
-rw-r--r-- | basctl/source/basicide/macrodlg.cxx | 3 | ||||
-rw-r--r-- | basctl/source/basicide/moduldl2.cxx | 16 | ||||
-rw-r--r-- | basctl/source/basicide/moduldlg.cxx | 9 | ||||
-rw-r--r-- | basctl/source/basicide/objdlg.cxx | 3 |
7 files changed, 32 insertions, 11 deletions
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx index be6895cdfd42..4afce39c3dfc 100644 --- a/basctl/source/basicide/baside2b.cxx +++ b/basctl/source/basicide/baside2b.cxx @@ -1683,7 +1683,8 @@ void WatchWindow::dispose() aRemoveWatchButton.disposeAndClear(); aHeaderBar.disposeAndClear(); aTreeListBox.disposeAndClear(); - GetSystemWindow()->GetTaskPaneList()->RemoveWindow( this ); + if (!IsDisposed()) + GetSystemWindow()->GetTaskPaneList()->RemoveWindow( this ); DockingWindow::dispose(); } @@ -1928,7 +1929,8 @@ StackWindow::~StackWindow() void StackWindow::dispose() { - GetSystemWindow()->GetTaskPaneList()->RemoveWindow( this ); + if (!IsDisposed()) + GetSystemWindow()->GetTaskPaneList()->RemoveWindow( this ); aTreeListBox.disposeAndClear(); DockingWindow::dispose(); } @@ -2177,6 +2179,7 @@ void WatchTreeListBox::dispose() while ( pEntry ) { delete static_cast<WatchItem*>(pEntry->GetUserData()); + pEntry->SetUserData(NULL); pEntry = Next( pEntry ); } SvHeaderTabListBox::dispose(); @@ -2861,6 +2864,7 @@ CodeCompleteWindow::~CodeCompleteWindow() void CodeCompleteWindow::dispose() { delete pListBox; + pListBox = NULL; vcl::Window::dispose(); } diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx index 642981f8e7cc..a85d0e0fd67f 100644 --- a/basctl/source/basicide/baside3.cxx +++ b/basctl/source/basicide/baside3.cxx @@ -1417,6 +1417,7 @@ void DialogWindowLayout::dispose() { Remove(pPropertyBrowser); delete pPropertyBrowser; + pPropertyBrowser = 0; } Layout::dispose(); } diff --git a/basctl/source/basicide/bastype2.cxx b/basctl/source/basicide/bastype2.cxx index 8abf2302a3bb..feb01c0066ef 100644 --- a/basctl/source/basicide/bastype2.cxx +++ b/basctl/source/basicide/bastype2.cxx @@ -217,7 +217,8 @@ void TreeListBox::dispose() SvTreeListEntry* pEntry = First(); while ( pEntry ) { - delete static_cast<Entry*>(pEntry->GetUserData()); + delete static_cast<Entry*>( pEntry->GetUserData() ); + pEntry->SetUserData( NULL ); pEntry = Next( pEntry ); } SvTreeListBox::dispose(); diff --git a/basctl/source/basicide/macrodlg.cxx b/basctl/source/basicide/macrodlg.cxx index 53355ef68bad..31d8bccecd19 100644 --- a/basctl/source/basicide/macrodlg.cxx +++ b/basctl/source/basicide/macrodlg.cxx @@ -118,7 +118,10 @@ MacroChooser::~MacroChooser() void MacroChooser::dispose() { if ( bForceStoreBasic ) + { SfxGetpApp()->SaveBasicAndDialogContainer(); + bForceStoreBasic = false; + } SfxModalDialog::dispose(); } diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx index 48cd1ed09b95..f7cfbb5adfd2 100644 --- a/basctl/source/basicide/moduldl2.cxx +++ b/basctl/source/basicide/moduldl2.cxx @@ -167,12 +167,14 @@ CheckBox::~CheckBox() void CheckBox::dispose() { delete pCheckButton; + pCheckButton = NULL; // delete user data SvTreeListEntry* pEntry = First(); while ( pEntry ) { - delete static_cast<LibUserData*>(pEntry->GetUserData()); + delete static_cast<LibUserData*>( pEntry->GetUserData() ); + pEntry->SetUserData( NULL ); pEntry = Next( pEntry ); } SvTabListBox::dispose(); @@ -487,11 +489,15 @@ LibPage::~LibPage() void LibPage::dispose() { - sal_uInt16 nCount = m_pBasicsBox->GetEntryCount(); - for ( sal_uInt16 i = 0; i < nCount; ++i ) + if (m_pBasicsBox) { - DocumentEntry* pEntry = static_cast<DocumentEntry*>(m_pBasicsBox->GetEntryData( i )); - delete pEntry; + sal_uInt16 nCount = m_pBasicsBox->GetEntryCount(); + for ( sal_uInt16 i = 0; i < nCount; ++i ) + { + DocumentEntry* pEntry = static_cast<DocumentEntry*>(m_pBasicsBox->GetEntryData( i )); + delete pEntry; + } + m_pBasicsBox = NULL; } TabPage::dispose(); } diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx index 9d3185b37402..216fb1d3c92b 100644 --- a/basctl/source/basicide/moduldlg.cxx +++ b/basctl/source/basicide/moduldlg.cxx @@ -491,8 +491,13 @@ OrganizeDialog::~OrganizeDialog() void OrganizeDialog::dispose() { - for ( sal_uInt16 i = 0; i < m_pTabCtrl->GetPageCount(); i++ ) - delete m_pTabCtrl->GetTabPage( m_pTabCtrl->GetPageId( i ) ); + if (m_pTabCtrl) + { + for ( sal_uInt16 i = 0; i < m_pTabCtrl->GetPageCount(); i++ ) + delete m_pTabCtrl->GetTabPage( m_pTabCtrl->GetPageId( i ) ); + m_pTabCtrl = NULL; + } + TabDialog::dispose(); }; diff --git a/basctl/source/basicide/objdlg.cxx b/basctl/source/basicide/objdlg.cxx index 14d943f82375..8c29c63aef01 100644 --- a/basctl/source/basicide/objdlg.cxx +++ b/basctl/source/basicide/objdlg.cxx @@ -74,7 +74,8 @@ ObjectCatalog::~ObjectCatalog() void ObjectCatalog::dispose() { - GetParent()->GetSystemWindow()->GetTaskPaneList()->RemoveWindow(this); + if (!IsDisposed()) + GetParent()->GetSystemWindow()->GetTaskPaneList()->RemoveWindow(this); aTitle.disposeAndClear(); aTree.disposeAndClear(); DockingWindow::dispose(); |