summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-10-14 09:02:12 +0200
committerStephan Bergmann <sbergman@redhat.com>2014-10-14 09:02:12 +0200
commitb80c468e35ee321b5580b42642064f74f9241fb6 (patch)
treede50708dfca26072eb8506498b3dbee45ad469ac /starmath
parent2d6dacc1c93bfd4a9086f8fde6b0edbfdeb573c9 (diff)
SmViewShell: pImpl must outlive aGraphic member
...as at least during CppunitTest_starmath_qa_cppunit, during ~SmViewShell, aGraphic's code calls back into SmViewShell's code calls into pImpl: SmViewShell::IsInlineEditEnabled() const starmath/source/view.cxx:2057:12 SmGraphicWindow::IsInlineEditEnabled() const starmath/source/view.cxx:227:12 SmGraphicWindow::CaretBlinkStop() starmath/source/view.cxx:297:10 SmGraphicWindow::~SmGraphicWindow() starmath/source/view.cxx:126:5 SmViewShell::~SmViewShell() starmath/source/view.cxx:1976:1 [...] This is somewhat symmetric to 0e263d61811480f3a9dbc6ad7c752f6cfae4e3fc "order pImpl before aGraphic because aGraphic deferences pImpl in ctor." Change-Id: I97494bebaf5747205a690e6d65fd05ba8fb61cab
Diffstat (limited to 'starmath')
-rw-r--r--starmath/inc/view.hxx6
-rw-r--r--starmath/source/view.cxx1
2 files changed, 5 insertions, 2 deletions
diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx
index 215ac5479025..b23572e2d1e9 100644
--- a/starmath/inc/view.hxx
+++ b/starmath/inc/view.hxx
@@ -19,6 +19,10 @@
#ifndef INCLUDED_STARMATH_INC_VIEW_HXX
#define INCLUDED_STARMATH_INC_VIEW_HXX
+#include <sal/config.h>
+
+#include <memory>
+
#include <sfx2/dockwin.hxx>
#include <sfx2/viewsh.hxx>
#include <svtools/scrwin.hxx>
@@ -224,7 +228,7 @@ class SmViewShell: public SfxViewShell
// for handling the PasteClipboardState
friend class SmClipboardChangeListener;
- SmViewShell_Impl* pImpl;
+ std::unique_ptr<SmViewShell_Impl> pImpl;
SmGraphicWindow aGraphic;
SmGraphicController aGraphicController;
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index 075941d4d670..55874794153a 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -1972,7 +1972,6 @@ SmViewShell::~SmViewShell()
SmEditWindow *pEditWin = GetEditWindow();
if (pEditWin)
pEditWin->DeleteEditView( *this );
- delete pImpl;
}
void SmViewShell::Deactivate( bool bIsMDIActivate )