Print log if worker thread destruction occured for UI items. 81/313981/4
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 3 Jul 2024 11:43:55 +0000 (20:43 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Thu, 4 Jul 2024 10:50:01 +0000 (19:50 +0900)
Change-Id: I99c765781dece4d4314c68ae3123eebef4b0392f
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-Visuals-internal.cpp
dali-toolkit/internal/visuals/visual-base-impl.cpp

index 7089256a84477df651b463d970b93fafc32f4338..f65a7c44c84d33036b74f1c67a89afc665c1003a 100644 (file)
@@ -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)
 {
 }
index fe2420f08ede125dfad2f64f9327ecd74d28e5eb..84d1358e0b35208ff4baa450476fee14592c2f30 100644 (file)
@@ -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;
+}
index 3cf60490b2174b344740a2c32e7ca58b05886eed..3ad9393bd414d82081d966515ee60bd8740feec9 100644 (file)
@@ -20,6 +20,7 @@
 
 // EXTERNAL HEADER
 #include <dali-toolkit/public-api/dali-toolkit-common.h>
+#include <dali/devel-api/common/stage.h>
 #include <dali/devel-api/rendering/renderer-devel.h>
 #include <dali/devel-api/scripting/enum-helper.h>
 #include <dali/integration-api/debug.h>
@@ -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));
         }
       }
     }