(Vector) Release the event callback in the main thread 07/231407/1
authorHeeyong Song <heeyong.song@samsung.com>
Tue, 21 Apr 2020 07:16:06 +0000 (16:16 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Wed, 22 Apr 2020 01:18:59 +0000 (10:18 +0900)
Change-Id: I0a7cfd229121beaf71c2425b60f20848bed508db

dali-extension/vector-animation-renderer/tizen-vector-animation-manager.cpp

index 557bdfd..37371ae 100755 (executable)
@@ -38,12 +38,13 @@ TizenVectorAnimationManager::TizenVectorAnimationManager()
 : mEventHandlers(),
   mTriggeredHandlers(),
   mMutex(),
-  mEventTrigger( new EventThreadCallback( MakeCallback( this, &TizenVectorAnimationManager::OnEventTriggered ) ) )
+  mEventTrigger()
 {
 }
 
 TizenVectorAnimationManager::~TizenVectorAnimationManager()
 {
+  DALI_LOG_RELEASE_INFO( "TizenVectorAnimationManager::~TizenVectorAnimationManager: this = %p\n", this );
 }
 
 void TizenVectorAnimationManager::AddEventHandler( TizenVectorAnimationEventHandler& handler )
@@ -55,6 +56,11 @@ void TizenVectorAnimationManager::AddEventHandler( TizenVectorAnimationEventHand
       Adaptor::Get().RegisterProcessor( *this );
     }
 
+    if( !mEventTrigger )
+    {
+      mEventTrigger = std::unique_ptr< EventThreadCallback >( new EventThreadCallback( MakeCallback( this, &TizenVectorAnimationManager::OnEventTriggered ) ) );
+    }
+
     mEventHandlers.push_back( &handler );
   }
 }
@@ -72,6 +78,8 @@ void TizenVectorAnimationManager::RemoveEventHandler( TizenVectorAnimationEventH
       {
         Adaptor::Get().UnregisterProcessor( *this );
       }
+
+      mEventTrigger.release();
     }
   }