From bd8218422386b6ec88f744233587fd085d0135da Mon Sep 17 00:00:00 2001 From: Victor Cebollada Date: Fri, 21 Oct 2016 13:49:47 +0100 Subject: [PATCH] TextVisual - Fix a memory leak issue. Change-Id: I06def29578a38fabdffc226fb774056bbc52fe1b Signed-off-by: Victor Cebollada --- dali-toolkit/internal/visuals/text/text-visual.cpp | 20 +++++++++++++++++--- dali-toolkit/internal/visuals/text/text-visual.h | 3 ++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/dali-toolkit/internal/visuals/text/text-visual.cpp b/dali-toolkit/internal/visuals/text/text-visual.cpp index 48f9a04..31dc8bb 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.cpp +++ b/dali-toolkit/internal/visuals/text/text-visual.cpp @@ -810,6 +810,13 @@ Dali::Property::Value TextVisual::DoGetProperty( Dali::Property::Index index ) void TextVisual::RenderText() { + Actor self = mSelf.GetHandle(); + if( !self ) + { + // Nothing to do if the handle is not initialized. + return; + } + Actor renderableActor; if( mRenderer ) @@ -826,7 +833,7 @@ void TextVisual::RenderText() const Vector2& scrollOffset = mController->GetScrollPosition(); renderableActor.SetPosition( scrollOffset.x, scrollOffset.y ); - mSelf.Add( renderableActor ); + self.Add( renderableActor ); } mRenderableActor = renderableActor; @@ -847,6 +854,13 @@ void TextVisual::StopTextAutoScrolling() void TextVisual::SetUpAutoScrolling() { + Actor self = mSelf.GetHandle(); + if( !self ) + { + // Nothing to do if the handle is not initialized. + return; + } + const Text::ScrollerData* const data = mController->GetAutoScrollData(); if( NULL != data ) @@ -860,8 +874,8 @@ void TextVisual::SetUpAutoScrolling() mTextScroller->StartScrolling( mRenderableActor, *data ); - mSelf.Add( mTextScroller->GetScrollingText() ); - mSelf.Add( mTextScroller->GetSourceCamera() ); + self.Add( mTextScroller->GetScrollingText() ); + self.Add( mTextScroller->GetSourceCamera() ); } } diff --git a/dali-toolkit/internal/visuals/text/text-visual.h b/dali-toolkit/internal/visuals/text/text-visual.h index a57ddba..47289d1 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.h +++ b/dali-toolkit/internal/visuals/text/text-visual.h @@ -19,6 +19,7 @@ */ // EXTERNAL INCLUDES +#include #include // INTERNAL INCLUDES @@ -168,7 +169,7 @@ private: private: Text::ControllerPtr mController; ///< The text's controller. - Actor mSelf; + WeakHandle mSelf; Text::RendererPtr mRenderer; Text::TextScrollerPtr mTextScroller; -- 2.7.4