From 037de512546917786c313d23995daaa0521a8e6e Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Wed, 2 Mar 2016 16:28:45 +0200 Subject: tdf#98175 fix Impress crash Caused by my commit f29c0b2b3e8861909fa2c6c37bf631ab01590541 "boost::shared_ptr->std::shared_ptr in slideshow" where I foolishly converted shared_from_this() to std::shared_ptr((Activity*)this) ) all over the place, which is bad, I should have used std::dynamic_pointer_cast(shared_from_this()) Ah, the joys of C++ memory management. Change-Id: I9b538e78730c9107870f406cb8ba482d491dd568 --- slideshow/source/engine/transitions/slidechangebase.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'slideshow/source/engine/transitions') diff --git a/slideshow/source/engine/transitions/slidechangebase.cxx b/slideshow/source/engine/transitions/slidechangebase.cxx index e5a24e8450a2..a13dd27be25f 100644 --- a/slideshow/source/engine/transitions/slidechangebase.cxx +++ b/slideshow/source/engine/transitions/slidechangebase.cxx @@ -176,7 +176,7 @@ void SlideChangeBase::prefetch( const AnimatableShapeSharedPtr&, return; // register ourselves for view change events - mrEventMultiplexer.addViewHandler( std::shared_ptr(this) ); + mrEventMultiplexer.addViewHandler( std::dynamic_pointer_cast(shared_from_this()) ); // init views and create slide bitmaps for( const auto& pView : mrViewContainer ) @@ -251,7 +251,7 @@ void SlideChangeBase::end() mbSpritesVisible = false; // remove also from event multiplexer, we're dead anyway - mrEventMultiplexer.removeViewHandler( std::shared_ptr(this) ); + mrEventMultiplexer.removeViewHandler( std::dynamic_pointer_cast(shared_from_this()) ); } bool SlideChangeBase::operator()( double nValue ) -- cgit