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

Armin Le Grand alg at apache.org
Tue Jul 9 06:51:35 PDT 2013


 slideshow/source/engine/slideshowimpl.cxx |   12 ++++++++++++
 1 file changed, 12 insertions(+)

New commits:
commit cc7a301dad831f8113cc3d737e2f4d23061a65ac
Author: Armin Le Grand <alg at apache.org>
Date:   Tue Jul 9 09:29:13 2013 +0000

    Resolves: #i118671# take emergency exit when local slideshow...
    
    is disposed from executing macros
    
    (cherry picked from commit 58eca806173ea9ede4efda89a96996d147227473)
    
    Change-Id: Ifd07faa0a4bb051dea7b57b775eaf8818a7ce6d3

diff --git a/slideshow/source/engine/slideshowimpl.cxx b/slideshow/source/engine/slideshowimpl.cxx
index a37cdbc..f9e8ed8 100644
--- a/slideshow/source/engine/slideshowimpl.cxx
+++ b/slideshow/source/engine/slideshowimpl.cxx
@@ -2010,6 +2010,18 @@ sal_Bool SlideShowImpl::update( double & nNextTimeout )
 
             // process queues
             maEventQueue.process();
+
+            // #i118671# the call above may execute a macro bound to an object. In
+            // that case this macro may have destroyed this local sliseshow so that it
+            // is disposed (see bugdoc at task). In that case, detect this and exit
+            // gently from this slideshow. Do not forget to disable the scoped
+            // call to mpPresTimer, this will be deleted if we are disposed.
+            if (isDisposed())
+            {
+                scopeGuard.dismiss();
+                return false;
+            }
+
             maActivitiesQueue.process();
 
             // commit frame to screen


More information about the Libreoffice-commits mailing list