TextVisual - Fix a memory leak issue.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / text / text-visual.cpp
index 3f9dd1e..31dc8bb 100644 (file)
@@ -259,10 +259,8 @@ TextVisual::~TextVisual()
 {
 }
 
-void TextVisual::DoInitialize( Actor& actor, const Property::Map& propertyMap )
+void TextVisual::DoSetProperties( const Property::Map& propertyMap )
 {
-  mSelf = actor;
-
   for( Property::Map::SizeType index = 0u, count = propertyMap.Count(); index < count; ++index )
   {
     const KeyValuePair& keyValue = propertyMap.GetKeyValue( index );
@@ -812,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 )
@@ -828,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;
 
@@ -849,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 )
@@ -862,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() );
   }
 }