[Tizen] Fix unload svg file error. 13/296813/1 accepted/tizen/7.0/unified/20230822.163523
authorEunki, Hong <eunkiki.hong@samsung.com>
Fri, 4 Aug 2023 09:08:34 +0000 (18:08 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Fri, 4 Aug 2023 09:08:34 +0000 (18:08 +0900)
When we create Svg Visual -> SceneOn & SceneOff very fast during all rasterize
threads are fully busy,
It will remove SvgLoadingTask who is in mResterizeTasks.

After we re-sceneon that visual again, it will be broken :
mLoadingFail is not true, but we didn't load file.

This patch make we don't remove SvgLoadingTask when we call RemoveTasks

Change-Id: I40582ebb2512e56e96eed64caff4b1070b4bd9c2
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-toolkit/internal/visuals/svg/svg-rasterize-thread.cpp

index c1ebd67..c720035 100644 (file)
@@ -334,7 +334,8 @@ void SvgRasterizeManager::RemoveTask(SvgVisual* visual)
     {
       for(std::vector<SvgTaskPtr>::iterator it = mRasterizeTasks.begin(); it != mRasterizeTasks.end();)
       {
-        if((*it) && (*it)->GetSvgVisual() == visual)
+        // We should not remove SvgLoadingTask now.
+        if((*it) && (*it)->GetSvgVisual() == visual && dynamic_cast<SvgRasterizingTask*>(it->Get()))
         {
           it = mRasterizeTasks.erase(it);
         }