Kaydet (Commit) b80c468e authored tarafından Stephan Bergmann's avatar Stephan Bergmann

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 0e263d61 "order
pImpl before aGraphic because aGraphic deferences pImpl in ctor."

Change-Id: I97494bebaf5747205a690e6d65fd05ba8fb61cab
üst 2d6dacc1
......@@ -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;
......
......@@ -1972,7 +1972,6 @@ SmViewShell::~SmViewShell()
SmEditWindow *pEditWin = GetEditWindow();
if (pEditWin)
pEditWin->DeleteEditView( *this );
delete pImpl;
}
void SmViewShell::Deactivate( bool bIsMDIActivate )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment