slideshow/source/engine/slideshowimpl.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+)
New commits: commit cc7a301dad831f8113cc3d737e2f4d23061a65ac Author: Armin Le Grand <[email protected]> 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 _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
