[Tizen] Add log if destroyed visual get some signal accepted/tizen/8.0/unified/20231005.094033 accepted/tizen/unified/20230919.091759 tizen_8.0_m2_release
authorSeoyeon Kim <seoyeon2.kim@samsung.com>
Mon, 18 Sep 2023 07:22:21 +0000 (16:22 +0900)
committerSeoyeon Kim <seoyeon2.kim@samsung.com>
Mon, 18 Sep 2023 07:22:25 +0000 (16:22 +0900)
This reverts commit 7a8c9a6f68e654097ce0584b62441c735872bb33.

Change-Id: I1eeaeb2495cc229a3d199516339f90774891d128

dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp
dali-toolkit/internal/visuals/image/image-visual.cpp
dali-toolkit/internal/visuals/svg/svg-visual.cpp
dali-toolkit/internal/visuals/visual-base-impl.cpp

index 8da0313..c7bffb6 100644 (file)
@@ -625,6 +625,12 @@ void AnimatedVectorImageVisual::OnResourceReady(VectorAnimationTask::ResourceSta
 
 void AnimatedVectorImageVisual::OnAnimationFinished()
 {
+  if(DALI_UNLIKELY(mImpl == nullptr))
+  {
+    DALI_LOG_ERROR("Fatal error!! already destroyed object callback called! AnimatedVectorImageVisual : %p, url : %s\n", this, mUrl.GetUrl().c_str());
+    return;
+  }
+
   DALI_LOG_INFO(gVectorAnimationLogFilter, Debug::Verbose, "AnimatedVectorImageVisual::OnAnimationFinished: action state = %d [%p]\n", mPlayState, this);
 
   if(mPlayState != DevelImageVisual::PlayState::STOPPED)
@@ -647,6 +653,12 @@ void AnimatedVectorImageVisual::OnAnimationFinished()
 
 void AnimatedVectorImageVisual::SendAnimationData()
 {
+  if(DALI_UNLIKELY(mImpl == nullptr))
+  {
+    DALI_LOG_ERROR("Fatal error!! already destroyed object callback called! AnimatedVectorImageVisual : %p, url : %s\n", this, mUrl.GetUrl().c_str());
+    return;
+  }
+
   if(mAnimationData.resendFlag)
   {
     mVectorAnimationTask->SetAnimationData(mAnimationData);
index 2f0e800..a8746c2 100644 (file)
@@ -1070,6 +1070,11 @@ void ImageVisual::FastLoadComplete(FastTrackLoadingTaskPtr task)
 void ImageVisual::LoadComplete(bool loadingSuccess, TextureInformation textureInformation)
 {
   Toolkit::Visual::ResourceStatus resourceStatus;
+  if(DALI_UNLIKELY(mImpl == nullptr))
+  {
+    DALI_LOG_ERROR("Fatal error!! already destroyed object callback called! ImageVisual : %p, url : %s\n", this, mImageUrl.GetUrl().c_str());
+    return;
+  }
   if(mImpl->mRenderer)
   {
     if(textureInformation.useAtlasing)
index 8f9919d..724c18d 100644 (file)
@@ -336,6 +336,11 @@ void SvgVisual::AddRasterizationTask(const Vector2& size)
 
 void SvgVisual::ApplyRasterizedImage(SvgTaskPtr task)
 {
+  if(DALI_UNLIKELY(mImpl == nullptr))
+  {
+    DALI_LOG_ERROR("Fatal error!! already destroyed object callback called! SvgVisual : %p, url : %s, task : %p\n", this, mImageUrl.GetUrl().c_str(), task.Get());
+    return;
+  }
   if(task->HasSucceeded())
   {
     PixelData rasterizedPixelData = task->GetPixelData();
index b4c7fc9..ddaca8c 100644 (file)
@@ -127,6 +127,7 @@ Visual::Base::Base(VisualFactoryCache& factoryCache, FittingMode fittingMode, To
 Visual::Base::~Base()
 {
   delete mImpl;
+  mImpl = nullptr;
 }
 
 void Visual::Base::Initialize()