[Libreoffice-commits] core.git: sd/source

Caolán McNamara caolanm at redhat.com
Wed May 18 15:10:14 UTC 2016


 sd/source/ui/dlg/dlgass.cxx  |    6 ++++++
 sd/source/ui/dlg/docprev.cxx |    6 ++++++
 2 files changed, 12 insertions(+)

New commits:
commit 1ea14bb0bbb7ca79c0a60a1041243bbebda31e18
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 18 16:08:16 2016 +0100

    Resolves: tdf#95620 crash in presentation wizard
    
    possibly a regression from VclPtr or maybe from
    VclBuilder, or a bit of both.
    
    Change-Id: I46acf07e219334547429da7b2983d5be9cdb6ef8

diff --git a/sd/source/ui/dlg/dlgass.cxx b/sd/source/ui/dlg/dlgass.cxx
index 5f4a8ca..95caa0e 100644
--- a/sd/source/ui/dlg/dlgass.cxx
+++ b/sd/source/ui/dlg/dlgass.cxx
@@ -656,6 +656,12 @@ AssistentDlgImpl::AssistentDlgImpl( vcl::Window* pWindow, const Link<ListBox&,vo
 
 AssistentDlgImpl::~AssistentDlgImpl()
 {
+    //tdf#95620 we need to have mpPreview disposed before the DocShell is
+    //destroyed, and not after. Because if the preview's slideshow is active
+    //then the slideshow accesses the medium belonging to this DocShell in
+    //its disposing.
+    mpPreview.disposeAndClear();
+
     CloseDocShell();
 
     DeletePasswords();
diff --git a/sd/source/ui/dlg/docprev.cxx b/sd/source/ui/dlg/docprev.cxx
index 7e25a5a..cc1f3bb 100644
--- a/sd/source/ui/dlg/docprev.cxx
+++ b/sd/source/ui/dlg/docprev.cxx
@@ -89,7 +89,13 @@ SdDocPreviewWin::~SdDocPreviewWin()
 
 void SdDocPreviewWin::dispose()
 {
+    if (mxSlideShow.is())
+    {
+        mxSlideShow->end();
+        mxSlideShow.clear();
+    }
     delete pMetaFile;
+    pMetaFile = nullptr;
     Control::dispose();
 }
 


More information about the Libreoffice-commits mailing list