From 9d6eb07ed9bdfac9c14b59ec8a340358f19c7785 Mon Sep 17 00:00:00 2001 From: Jiyun Yang Date: Mon, 25 Sep 2023 14:30:22 +0900 Subject: [PATCH] [Tizen] Add log if destroyed visual get some signal This reverts commit d749cedb62fa1476c144d0dbc1c29ee9b21e4fa2. Change-Id: I808cc025b2826d3af74f0d5a0fb0e9c9bc879f50 --- .../animated-vector-image/animated-vector-image-visual.cpp | 12 ++++++++++++ dali-toolkit/internal/visuals/image/image-visual.cpp | 5 +++++ dali-toolkit/internal/visuals/svg/svg-visual.cpp | 5 +++++ dali-toolkit/internal/visuals/visual-base-impl.cpp | 1 + 4 files changed, 23 insertions(+) diff --git a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp index b9a8f87..c68e1a4 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp @@ -626,6 +626,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) @@ -648,6 +654,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); diff --git a/dali-toolkit/internal/visuals/image/image-visual.cpp b/dali-toolkit/internal/visuals/image/image-visual.cpp index 0f18783..54bbdbc 100644 --- a/dali-toolkit/internal/visuals/image/image-visual.cpp +++ b/dali-toolkit/internal/visuals/image/image-visual.cpp @@ -1089,6 +1089,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) diff --git a/dali-toolkit/internal/visuals/svg/svg-visual.cpp b/dali-toolkit/internal/visuals/svg/svg-visual.cpp index c6e471c..a5bb63d 100644 --- a/dali-toolkit/internal/visuals/svg/svg-visual.cpp +++ b/dali-toolkit/internal/visuals/svg/svg-visual.cpp @@ -337,6 +337,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(); diff --git a/dali-toolkit/internal/visuals/visual-base-impl.cpp b/dali-toolkit/internal/visuals/visual-base-impl.cpp index b4c7fc9..ddaca8c 100644 --- a/dali-toolkit/internal/visuals/visual-base-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-base-impl.cpp @@ -127,6 +127,7 @@ Visual::Base::Base(VisualFactoryCache& factoryCache, FittingMode fittingMode, To Visual::Base::~Base() { delete mImpl; + mImpl = nullptr; } void Visual::Base::Initialize() -- 2.7.4