Revert "[Tizen](Vector) Fix invalid callback issue"
authorseungho baek <sbsh.baek@samsung.com>
Tue, 18 Jul 2023 09:01:08 +0000 (18:01 +0900)
committerseungho baek <sbsh.baek@samsung.com>
Tue, 18 Jul 2023 09:01:08 +0000 (18:01 +0900)
This reverts commit 503ff1d0174097afeb56f4d6b94dabe31fbd8784.

dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-thread.cpp
dali-toolkit/internal/visuals/animated-vector-image/vector-animation-thread.h

index b1e9bea..6d4b2ef 100644 (file)
@@ -106,12 +106,10 @@ void VectorAnimationTask::Finalize()
   if(mAnimationFinishedCallback)
   {
     mVectorAnimationThread.RemoveEventTriggerCallback(mAnimationFinishedCallback.get());
-    mAnimationFinishedCallback.reset();
   }
   if(mLoadCompletedCallback)
   {
     mVectorAnimationThread.RemoveEventTriggerCallback(mLoadCompletedCallback.get());
-    mLoadCompletedCallback.reset();
   }
 
   mVectorRenderer.Finalize();
@@ -141,7 +139,7 @@ bool VectorAnimationTask::Load(bool synchronousLoading)
     DALI_LOG_ERROR("VectorAnimationTask::Load: Load failed [%s]\n", mUrl.c_str());
     mLoadRequest = false;
     mLoadFailed  = true;
-    if(!synchronousLoading && mLoadCompletedCallback)
+    if(!synchronousLoading)
     {
       mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get());
     }
@@ -156,7 +154,7 @@ bool VectorAnimationTask::Load(bool synchronousLoading)
   mFrameDurationMicroSeconds = MICROSECONDS_PER_SECOND / mFrameRate;
 
   mLoadRequest = false;
-  if(!synchronousLoading && mLoadCompletedCallback)
+  if(!synchronousLoading)
   {
     mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get());
   }
index 9d2cfbe..08b52d6 100644 (file)
@@ -263,25 +263,15 @@ void VectorAnimationThread::Rasterize()
 
 void VectorAnimationThread::OnEventCallbackTriggered()
 {
-  while(CallbackBase* callback = GetNextEventCallback())
-  {
-    CallbackBase::Execute(*callback);
-  }
-}
-
-CallbackBase* VectorAnimationThread::GetNextEventCallback()
-{
   ConditionalWait::ScopedLock lock(mConditionalWait);
 
-  if(!mTriggerEventCallbacks.empty())
+  for(auto&& iter : mTriggerEventCallbacks)
   {
-    auto          iter     = mTriggerEventCallbacks.begin();
-    CallbackBase* callback = *iter;
-    mTriggerEventCallbacks.erase(iter);
-    return callback;
+    CallbackBase::Execute(*iter);
   }
+
+  mTriggerEventCallbacks.clear();
   mEventTriggered = false;
-  return nullptr;
 }
 
 VectorAnimationThread::SleepThread::SleepThread(CallbackBase* callback)
index 14aa6c9..79d1a48 100644 (file)
@@ -95,7 +95,7 @@ protected:
 
 private:
   /**
-   * @brief Rasterizes the tasks.
+   * Rasterizes the tasks.
    */
   void Rasterize();
 
@@ -105,11 +105,6 @@ private:
   void OnEventCallbackTriggered();
 
   /**
-   * @brief Gets next event callback to process.
-   */
-  CallbackBase* GetNextEventCallback();
-
-  /**
    * @brief The thread to sleep until the next frame time.
    */
   class SleepThread : public Thread