[Tizen] Check adaptor validation instead of stage installed 85/316785/1 accepted/tizen/8.0/unified/20240829.154602
authorEunki, Hong <eunkiki.hong@samsung.com>
Tue, 27 Aug 2024 05:16:39 +0000 (14:16 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Wed, 28 Aug 2024 05:23:07 +0000 (14:23 +0900)
Adaptor::IsAvaiable() check the adaptor stop called or not.

It will make more safety if we try to access singleton classes during
terminate application

Change-Id: Iaccad5d0edd6ed036f05e0c49bc1e1973fae0403
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-test-application.cpp
dali-toolkit/internal/controls/control/control-data-impl.cpp
dali-toolkit/internal/controls/image-view/image-view-impl.cpp
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/visuals/image/image-visual.cpp
dali-toolkit/internal/visuals/npatch/npatch-visual.cpp
dali-toolkit/internal/visuals/svg/svg-visual.cpp

index 840cc13a8cb9e255b5b0229f44579563ca3ddbeb..ce66dae3358b27517b4f0b5483bc57b6b1b7cf52 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -76,6 +76,12 @@ ToolkitTestApplication::~ToolkitTestApplication()
   Dali::LifecycleController lifecycleController = Dali::LifecycleController::Get();
   lifecycleController.TerminateSignal().Emit();
 
+  // Stop adaptor after terminate signal emit
+  if(Dali::Adaptor::IsAvailable() && mAdaptor)
+  {
+    mAdaptor->Stop();
+  }
+
   // Need to delete core before we delete the adaptor.
   delete mCore;
   mCore = NULL;
index 482ca3dbe3b5290f650e5fddd6ea83fc518418b9..bcc13dd93ee774158ab97289a4be2ff77af3a6da 100644 (file)
@@ -240,7 +240,7 @@ void DiscardVisual(RegisteredVisualContainer::Iterator sourceIter, RegisteredVis
   Toolkit::Visual::Base visual = (*sourceIter)->visual;
   if(visual)
   {
-    if(Stage::IsInstalled())
+    if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
     {
       Toolkit::VisualFactory::Get().DiscardVisual(visual);
     }
@@ -2225,7 +2225,7 @@ void Control::Impl::UpdateVisualProperties(const std::vector<std::pair<Dali::Pro
 
 void Control::Impl::EmitResourceReadySignal()
 {
-  if(DALI_LIKELY(Stage::IsInstalled())) ///< Avoid resource ready callback during shutting down
+  if(DALI_LIKELY(Dali::Adaptor::IsAvailable())) ///< Avoid resource ready callback during shutting down
   {
     if(!mIsEmittingResourceReadySignal)
     {
index 8a71d658d6a8e23986bf5187728e0403319308b1..947eb4e0833aacb9fd18808cf9068a792d420d58 100644 (file)
@@ -21,6 +21,7 @@
 // EXTERNAL INCLUDES
 #include <dali/devel-api/common/stage.h>
 #include <dali/devel-api/scripting/scripting.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <dali/public-api/math/math-utils.h>
 #include <dali/public-api/object/type-registry-helper.h>
 #include <dali/public-api/object/type-registry.h>
@@ -75,7 +76,7 @@ DALI_TYPE_REGISTRATION_END()
  */
 void DiscardImageViewVisual(Dali::Toolkit::Visual::Base& visual)
 {
-  if(DALI_LIKELY(Dali::Stage::IsInstalled() && visual))
+  if(DALI_LIKELY(Dali::Adaptor::IsAvailable() && visual))
   {
     Dali::Toolkit::VisualFactory::Get().DiscardVisual(visual);
   }
index 6e952ba5127e7ab18ba227e7ce5b518057eb7947..c2f7c775724f776f540d5b8ff24db259defa0eed 100644 (file)
@@ -239,7 +239,7 @@ void ParseTextFitProperty(Text::ControllerPtr& controller, const Property::Map*
  */
 void DiscardTextLabelVisual(Dali::Toolkit::Visual::Base& visual)
 {
-  if(DALI_LIKELY(Dali::Stage::IsInstalled() && visual))
+  if(DALI_LIKELY(Dali::Adaptor::IsAvailable() && visual))
   {
     Dali::Toolkit::VisualFactory::Get().DiscardVisual(visual);
   }
index 6b30a020eade09032640858023215718344ee029..bb69e26f2e065a84316a8f616b6ecbd3ee3afe80 100644 (file)
@@ -25,6 +25,7 @@
 #include <dali/devel-api/rendering/texture-devel.h>
 #include <dali/devel-api/scripting/enum-helper.h>
 #include <dali/devel-api/scripting/scripting.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <dali/integration-api/debug.h>
 #include <dali/public-api/actors/layer.h>
 #include <dali/public-api/adaptor-framework/async-task-manager.h>
@@ -208,7 +209,7 @@ ImageVisual::ImageVisual(VisualFactoryCache&       factoryCache,
 
 ImageVisual::~ImageVisual()
 {
-  if(Stage::IsInstalled())
+  if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
   {
     if(mImageUrl.IsValid())
     {
@@ -1398,7 +1399,7 @@ void ImageVisual::ResetFastTrackLoadingTask()
 Geometry ImageVisual::GenerateGeometry(TextureManager::TextureId textureId, bool createForce)
 {
   Geometry geometry;
-  if(Stage::IsInstalled())
+  if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
   {
     if(mImpl->mCustomShader)
     {
index 25448994205caba0ccdc064a9cb4bf465d70a2e1..89b62c93ea900b9ec5cdf88bcc617abedb03776d 100644 (file)
@@ -22,6 +22,7 @@
 #include <dali/devel-api/adaptor-framework/image-loading.h>
 #include <dali/devel-api/common/stage.h>
 #include <dali/devel-api/rendering/renderer-devel.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <dali/integration-api/debug.h>
 
 // INTERNAL INCLUDES
@@ -314,7 +315,7 @@ NPatchVisual::NPatchVisual(VisualFactoryCache& factoryCache, ImageVisualShaderFa
 
 NPatchVisual::~NPatchVisual()
 {
-  if(Stage::IsInstalled())
+  if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
   {
     if(mReleasePolicy != Toolkit::ImageVisual::ReleasePolicy::NEVER)
     {
index 085324a5a6115000a994efa9c92a0ed55c51887c..f4e898ae13992cbad63d1db7969b25ed79f3023f 100644 (file)
@@ -29,6 +29,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/devel-api/common/stage.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <dali/integration-api/debug.h>
 #include <dali/public-api/rendering/decorated-visual-renderer.h>
 
@@ -82,7 +83,7 @@ SvgVisual::SvgVisual(VisualFactoryCache& factoryCache, ImageVisualShaderFactory&
 
 SvgVisual::~SvgVisual()
 {
-  if(Stage::IsInstalled())
+  if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
   {
     if(mLoadingTask)
     {