summaryrefslogtreecommitdiff
path: root/sd/source/ui/view/DocumentRenderer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/view/DocumentRenderer.cxx')
-rw-r--r--sd/source/ui/view/DocumentRenderer.cxx17
1 files changed, 10 insertions, 7 deletions
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx
index 9966f6c7b993..0e79d610ddc0 100644
--- a/sd/source/ui/view/DocumentRenderer.cxx
+++ b/sd/source/ui/view/DocumentRenderer.cxx
@@ -1198,13 +1198,14 @@ class DocumentRenderer::Implementation
{
public:
Implementation (ViewShellBase& rBase)
- : mrBase(rBase),
- mbIsDisposed(false),
- mpPrinter(NULL),
- mpOptions(),
- maPrinterPages(),
- mpPrintView(),
- mbHasOrientationWarningBeenShown(false)
+ : mxObjectShell(rBase.GetDocShell())
+ , mrBase(rBase)
+ , mbIsDisposed(false)
+ , mpPrinter(NULL)
+ , mpOptions()
+ , maPrinterPages()
+ , mpPrintView()
+ , mbHasOrientationWarningBeenShown(false)
{
DialogCreator aCreator( mrBase.GetDocShell()->GetDocumentType() == DOCUMENT_TYPE_IMPRESS );
m_aUIProperties = aCreator.GetDialogControls();
@@ -1400,6 +1401,8 @@ public:
private:
+ // rhbz#657394: keep the document alive: prevents crash when
+ SfxObjectShellRef mxObjectShell; // destroying mpPrintView
ViewShellBase& mrBase;
bool mbIsDisposed;
Printer* mpPrinter;