summaryrefslogtreecommitdiff
path: root/basctl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-11-12 12:25:16 +0000
committerAndras Timar <andras.timar@collabora.com>2015-11-16 18:50:13 +0100
commitc50223ac91c9fee4dced70e9b79e314d58edbe58 (patch)
tree00d97a5f9798b3c455c510f654f91834a63e73df /basctl
parent5deedec2ab708b841d0d696c8039c7fbcd4e62a7 (diff)
Resolves: tdf#95021 crash on closing macro dialog editor
VclPtr related, dialog dtor is never called, so timer is never stopped and timer refers to deleted parent data (cherry picked from commit 0943adb2f7ec319891c11889b40c9a69f0d1027e) Change-Id: I804ba082817802c0017e61c6b86c5d3694995ea8 Reviewed-on: https://gerrit.libreoffice.org/19926 Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com> Tested-by: Maxim Monastirsky <momonasmon@gmail.com> (cherry picked from commit 33df62efe3c94b87b765f8334c8b614eb896338b)
Diffstat (limited to 'basctl')
-rw-r--r--basctl/source/basicide/baside3.cxx6
-rw-r--r--basctl/source/inc/baside3.hxx3
2 files changed, 8 insertions, 1 deletions
diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index 19c052d928b4..9ebb90ed280b 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -98,6 +98,12 @@ DialogWindow::DialogWindow(DialogWindowLayout* pParent, ScriptDocument const& rD
SetReadOnly(true);
}
+void DialogWindow::dispose()
+{
+ pEditor.reset();
+ BaseWindow::dispose();
+}
+
void DialogWindow::LoseFocus()
{
if ( IsModified() )
diff --git a/basctl/source/inc/baside3.hxx b/basctl/source/inc/baside3.hxx
index 94cd40ed38b9..49358a97a2fc 100644
--- a/basctl/source/inc/baside3.hxx
+++ b/basctl/source/inc/baside3.hxx
@@ -56,13 +56,14 @@ class DialogWindow: public BaseWindow
{
private:
DialogWindowLayout& rLayout;
- boost::scoped_ptr<DlgEditor> pEditor; // never nullptr
+ boost::scoped_ptr<DlgEditor> pEditor;
boost::scoped_ptr<SfxUndoManager> pUndoMgr; // never nullptr
OUString aCurPath;
protected:
virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE;
virtual void Resize() SAL_OVERRIDE;
+ virtual void dispose() SAL_OVERRIDE;
virtual void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
virtual void MouseButtonUp( const MouseEvent& rMEvt ) SAL_OVERRIDE;