From e10fd92e6f1658a8977deb5b0cc821866838bd91 Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Wed, 3 Jul 2024 20:43:55 +0900 Subject: [PATCH] Print log if worker thread destruction occured for UI items. Change-Id: I99c765781dece4d4314c68ae3123eebef4b0392f Signed-off-by: Eunki, Hong --- .../dali-toolkit-test-utils/dummy-visual.cpp | 2 +- .../utc-Dali-Visuals-internal.cpp | 19 +++++++++++++++++++ dali-toolkit/internal/visuals/visual-base-impl.cpp | 20 ++++++++++++++------ 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp b/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp index 7089256..f65a7c4 100644 --- a/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp +++ b/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp @@ -35,7 +35,7 @@ DummyVisualPtr DummyVisual::New(const Property::Map& properties) } DummyVisual::DummyVisual(VisualFactoryCache& factoryCache) -: Visual::Base(factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::Type::COLOR), +: Visual::Base(factoryCache, Visual::FittingMode::DONT_CARE, Toolkit::Visual::Type::COLOR), mActionCounter(0) { } diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Visuals-internal.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Visuals-internal.cpp index fe2420f..84d1358 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Visuals-internal.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Visuals-internal.cpp @@ -371,6 +371,7 @@ int UtcDaliArcVisualCreateInstancePropertyMap(void) END_TEST; } + int UtcDaliVisualUpdateBrokenImageRenderer(void) { ToolkitTestApplication application; @@ -414,3 +415,21 @@ int UtcDaliVisualUpdateBrokenImageRenderer(void) END_TEST; } + +int UtcDaliVisualCreateWithoutCoreN(void) +{ + // DO NOT USE Application for this UTC. + tet_infoline("UtcDaliVisualCreateWithoutCore Test, for line coverage"); + + //Created DummyVisual + Property::Map settings; + Toolkit::Internal::DummyVisualPtr dummyVisualPtr = Toolkit::Internal::DummyVisual::New(settings); + Toolkit::Visual::Base visualBaseHandle = Toolkit::Visual::Base(dummyVisualPtr.Get()); + + visualBaseHandle.Reset(); + + // Always success + DALI_TEST_CHECK(true); + + END_TEST; +} diff --git a/dali-toolkit/internal/visuals/visual-base-impl.cpp b/dali-toolkit/internal/visuals/visual-base-impl.cpp index 3cf6049..3ad9393 100644 --- a/dali-toolkit/internal/visuals/visual-base-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-base-impl.cpp @@ -20,6 +20,7 @@ // EXTERNAL HEADER #include +#include #include #include #include @@ -56,7 +57,6 @@ namespace Toolkit { namespace Internal { - const Vector4 FULL_TEXTURE_RECT(0.f, 0.f, 1.f, 1.f); namespace @@ -164,10 +164,18 @@ Visual::Base::Base(VisualFactoryCache& factoryCache, FittingMode fittingMode, To : mImpl(new Impl(fittingMode, type)), mFactoryCache(factoryCache) { + if(DALI_UNLIKELY(!Dali::Stage::IsCoreThread())) + { + DALI_LOG_ERROR("Visual::Base[%p] called from non-UI thread! something unknown issue will be happened!\n", this); + } } Visual::Base::~Base() { + if(DALI_UNLIKELY(!Dali::Stage::IsCoreThread())) + { + DALI_LOG_ERROR("Visual::~Base[%p] called from non-UI thread! something unknown issue will be happened!\n", this); + } delete mImpl; } @@ -1098,7 +1106,7 @@ void Visual::Base::SetupTransition( Dali::KeyFrames keyFrames = Dali::KeyFrames::New(); keyFrames.Add(0.0f, animator.initialValue); keyFrames.Add(1.0f, animator.targetValue); - transition.AnimateBetween(Property(mImpl->mRenderer, index),keyFrames, TimePeriod(animator.timePeriodDelay, animator.timePeriodDuration)); + transition.AnimateBetween(Property(mImpl->mRenderer, index), keyFrames, TimePeriod(animator.timePeriodDelay, animator.timePeriodDuration)); } else if(animator.animationType == TransitionData::AnimationType::BY) { @@ -1108,10 +1116,10 @@ void Visual::Base::SetupTransition( else { transition.AnimateTo(Property(mImpl->mRenderer, index), - targetValue, - animator.alphaFunction, - TimePeriod(animator.timePeriodDelay, - animator.timePeriodDuration)); + targetValue, + animator.alphaFunction, + TimePeriod(animator.timePeriodDelay, + animator.timePeriodDuration)); } } } -- 2.7.4