Remove unused task id container at AsyncImageLoader 38/319438/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Tue, 11 Feb 2025 05:13:55 +0000 (14:13 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Tue, 11 Feb 2025 05:13:55 +0000 (14:13 +0900)
Change-Id: I5dbfc1ada410b5812a407d08be9363b430a727ad
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-toolkit/internal/image-loader/async-image-loader-impl.cpp
dali-toolkit/internal/image-loader/async-image-loader-impl.h

index 11801fccddb13230bcc8a9fc4d1b899b9c00303e..30bf1fe7084bfb3786ffeeacbade1bbf5154560a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2025 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -117,9 +117,6 @@ Toolkit::DevelAsyncImageLoader::PixelBufferLoadedSignalType& AsyncImageLoader::P
 
 bool AsyncImageLoader::Cancel(uint32_t loadingTaskId)
 {
-  // Remove already completed tasks
-  RemoveCompletedTask();
-
   auto end = mLoadingTasks.end();
   for(std::vector<AsyncImageLoadingInfo>::iterator iter = mLoadingTasks.begin(); iter != end; ++iter)
   {
@@ -136,9 +133,6 @@ bool AsyncImageLoader::Cancel(uint32_t loadingTaskId)
 
 void AsyncImageLoader::CancelAll()
 {
-  // Remove already completed tasks
-  RemoveCompletedTask();
-
   auto end = mLoadingTasks.end();
   for(std::vector<AsyncImageLoadingInfo>::iterator iter = mLoadingTasks.begin(); iter != end; ++iter)
   {
@@ -152,6 +146,17 @@ void AsyncImageLoader::CancelAll()
 
 void AsyncImageLoader::ProcessLoadedImage(LoadingTaskPtr task)
 {
+  // Remove tasks before signal emit
+  auto end = mLoadingTasks.end();
+  for(auto iter = mLoadingTasks.begin(); iter != end; ++iter)
+  {
+    if((*iter).loadId == task->id)
+    {
+      mLoadingTasks.erase(iter);
+      break;
+    }
+  }
+
   if(mPixelBufferLoadedSignal.GetConnectionCount() > 0)
   {
     mPixelBufferLoadedSignal.Emit(task->id, task->pixelBuffers);
@@ -165,31 +170,6 @@ void AsyncImageLoader::ProcessLoadedImage(LoadingTaskPtr task)
     }
     mLoadedSignal.Emit(task->id, pixelData);
   }
-
-  mCompletedTaskIds.push_back(task->id);
-}
-
-void AsyncImageLoader::RemoveCompletedTask()
-{
-  std::uint32_t loadingTaskId;
-  auto          end              = mLoadingTasks.end();
-  auto          endCompletedIter = mCompletedTaskIds.end();
-  for(auto iterCompleted = mCompletedTaskIds.begin(); iterCompleted != endCompletedIter; ++iterCompleted)
-  {
-    loadingTaskId = (*iterCompleted);
-    for(std::vector<AsyncImageLoadingInfo>::iterator iter = mLoadingTasks.begin(); iter != end; ++iter)
-    {
-      if((*iter).loadId == loadingTaskId)
-      {
-        mLoadingTasks.erase(iter);
-        end = mLoadingTasks.end();
-        break;
-      }
-    }
-  }
-
-  // Remove cached completed tasks
-  mCompletedTaskIds.clear();
 }
 
 } // namespace Internal
index c23b102889e53841822801e8cf4c6dd5d7a49f55..20ad3c6a5469b86c2bcaec410fd56326b19b3d2e 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H
 
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2025 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -166,17 +166,10 @@ protected:
    */
   ~AsyncImageLoader() override;
 
-private:
-  /**
-   * Remove already completed tasks
-   */
-  void RemoveCompletedTask();
-
 private:
   Toolkit::AsyncImageLoader::ImageLoadedSignalType            mLoadedSignal;
   Toolkit::DevelAsyncImageLoader::PixelBufferLoadedSignalType mPixelBufferLoadedSignal;
   std::vector<AsyncImageLoadingInfo>                          mLoadingTasks;
-  std::vector<uint32_t>                                       mCompletedTaskIds;
   uint32_t                                                    mLoadTaskId;
 };