From: Eunki, Hong Date: Tue, 11 Feb 2025 05:13:55 +0000 (+0900) Subject: Remove unused task id container at AsyncImageLoader X-Git-Tag: dali_2.4.6~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e8e51ee7d64a232e6107ab558e2cce165d7aa7b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git Remove unused task id container at AsyncImageLoader Change-Id: I5dbfc1ada410b5812a407d08be9363b430a727ad Signed-off-by: Eunki, Hong --- diff --git a/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp b/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp index 11801fccdd..30bf1fe708 100644 --- a/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp +++ b/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp @@ -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::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::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::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 diff --git a/dali-toolkit/internal/image-loader/async-image-loader-impl.h b/dali-toolkit/internal/image-loader/async-image-loader-impl.h index c23b102889..20ad3c6a54 100644 --- a/dali-toolkit/internal/image-loader/async-image-loader-impl.h +++ b/dali-toolkit/internal/image-loader/async-image-loader-impl.h @@ -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 mLoadingTasks; - std::vector mCompletedTaskIds; uint32_t mLoadTaskId; };