[Tizen] Print log if worker thread destruction occured for UI items. 34/314134/1 accepted/tizen_8.0_unified accepted/tizen/8.0/unified/20240709.165318
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 3 Jul 2024 11:43:55 +0000 (20:43 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Fri, 5 Jul 2024 08:49:20 +0000 (17:49 +0900)
Change-Id: I99c765781dece4d4314c68ae3123eebef4b0392f
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
automated-tests/src/dali-toolkit-internal/utc-Dali-Visuals-internal.cpp
dali-toolkit/internal/visuals/visual-base-impl.cpp

index 77b2d14..cd698fd 100644 (file)
@@ -297,6 +297,7 @@ int UtcDaliArcVisualCreateInstancePropertyMap(void)
 
   END_TEST;
 }
+
 int UtcDaliVisualUpdateBrokenImageRenderer(void)
 {
   ToolkitTestApplication application;
@@ -340,3 +341,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 3d8e79e..9b722a2 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>
@@ -159,10 +160,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;
 }