From: seungho baek Date: Mon, 8 Jan 2024 11:41:59 +0000 (+0900) Subject: [Tizen] To prevent segmentation fault in AnimatedVectorImageVisual X-Git-Tag: accepted/tizen/8.0/unified/20240109.155453~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F75%2F303975%2F2;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [Tizen] To prevent segmentation fault in AnimatedVectorImageVisual Change-Id: I4c5c94eb9faeffd4727b5879254527692fe93be2 Signed-off-by: seungho baek --- diff --git a/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp b/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp index 4cde154..ca65458 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp @@ -192,9 +192,12 @@ bool VectorAnimationTask::Load(bool synchronousLoading) { DALI_LOG_ERROR("VectorAnimationTask::Load: Load failed [%s]\n", mImageUrl.GetUrl().c_str()); mLoadRequest = false; - if(!synchronousLoading && mLoadCompletedCallback) { - mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get()); + ConditionalWait::ScopedLock lock(mConditionalWait); + if(!synchronousLoading && mLoadCompletedCallback) + { + mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get()); + } } #ifdef TRACE_ENABLED if(gTraceFilter && gTraceFilter->IsTraceEnabled()) @@ -216,9 +219,12 @@ bool VectorAnimationTask::Load(bool synchronousLoading) mFrameDurationMicroSeconds = MICROSECONDS_PER_SECOND / mFrameRate; mLoadRequest = false; - if(!synchronousLoading && mLoadCompletedCallback) { - mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get()); + ConditionalWait::ScopedLock lock(mConditionalWait); + if(!synchronousLoading && mLoadCompletedCallback) + { + mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get()); + } } DALI_LOG_INFO(gVectorAnimationLogFilter, Debug::Verbose, "VectorAnimationTask::Load: file = %s [%d frames, %f fps] [%p]\n", mImageUrl.GetUrl().c_str(), mTotalFrame, mFrameRate, this);