summaryrefslogtreecommitdiff
path: root/basctl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-06-24 17:26:27 +0100
committerAndras Timar <andras.timar@collabora.com>2015-08-06 12:51:47 +0200
commit612bd17257ac829d0badf89c1fd3568636e439b8 (patch)
treeb13443ccd398d52f6dbfe2d981c880fe830121bb /basctl
parentde0981b0efa452a945db1f8b4d3af257f10de275 (diff)
tdf#92258 - fix crash editing macro module name.
Change-Id: I8e0bbab7d7497ed7c136ddbfba73618834d5a204
Diffstat (limited to 'basctl')
-rw-r--r--basctl/source/basicide/basidesh.cxx8
1 files changed, 5 insertions, 3 deletions
diff --git a/basctl/source/basicide/basidesh.cxx b/basctl/source/basicide/basidesh.cxx
index 661a667f1034..9eb86f8e8626 100644
--- a/basctl/source/basicide/basidesh.cxx
+++ b/basctl/source/basicide/basidesh.cxx
@@ -118,9 +118,9 @@ public:
virtual void SAL_CALL elementRemoved( const container::ContainerEvent& Event ) throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE
{
OUString sModuleName;
- if( mpShell && ( Event.Accessor >>= sModuleName ) )
+ if( mpShell && ( Event.Accessor >>= sModuleName ) )
{
- ModulWindow* pWin = mpShell->FindBasWin(mpShell->m_aCurDocument, mpShell->m_aCurLibName, sModuleName, false, true);
+ VclPtr<ModulWindow> pWin = mpShell->FindBasWin(mpShell->m_aCurDocument, mpShell->m_aCurLibName, sModuleName, false, true);
if( pWin )
mpShell->RemoveWindow( pWin, true, true );
}
@@ -799,6 +799,8 @@ void Shell::UpdateWindows()
void Shell::RemoveWindow( BaseWindow* pWindow_, bool bDestroy, bool bAllowChangeCurWindow )
{
+ VclPtr<BaseWindow> pWindowTmp( pWindow_ );
+
DBG_ASSERT( pWindow_, "Kann keinen NULL-Pointer loeschen!" );
sal_uLong nKey = GetWindowId( pWindow_ );
pTabBar->RemovePage( (sal_uInt16)nKey );
@@ -818,7 +820,7 @@ void Shell::RemoveWindow( BaseWindow* pWindow_, bool bDestroy, bool bAllowChange
{
if ( !( pWindow_->GetStatus() & BASWIN_INRESCHEDULE ) )
{
- pWindow_->disposeOnce();
+ pWindowTmp.disposeAndClear();
}
else
{