summaryrefslogtreecommitdiff
path: root/basctl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-03-02 22:02:19 +0000
committerMichael Meeks <michael.meeks@collabora.com>2015-04-09 22:35:14 +0100
commit954e5e4b7820c5db3a6720dc9dc27e49cee449ac (patch)
treea5136c84a45d3861f7271b9eced37e33aa274658 /basctl
parente8284454f517d29a29f95a347a38730ded047f41 (diff)
prophylactic double dispose audit.
Change-Id: Ia18c0b7a76fb0894efe33afaf69a0079c4583228
Diffstat (limited to 'basctl')
-rw-r--r--basctl/source/basicide/baside2b.cxx8
-rw-r--r--basctl/source/basicide/baside3.cxx1
-rw-r--r--basctl/source/basicide/bastype2.cxx3
-rw-r--r--basctl/source/basicide/macrodlg.cxx3
-rw-r--r--basctl/source/basicide/moduldl2.cxx16
-rw-r--r--basctl/source/basicide/moduldlg.cxx9
-rw-r--r--basctl/source/basicide/objdlg.cxx3
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();