From: Wonsik Jung Date: Fri, 30 Jun 2023 09:16:47 +0000 (+0900) Subject: Fix the bug system initailize and shutdown pair. X-Git-Tag: accepted/tizen/unified/20230706.152132~1^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a591b2ba96e65bbcd0bcd28ab83f7789c93034d;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git Fix the bug system initailize and shutdown pair. This patch is to fix the bug system initailize and shutdown pair. Sometimes, WindowSystem::Shutdown() is called before WindowSystem::Initialize() is not calling. The example is the below. int UtcDaliApplicationNew01(void) { Application application = Application::New(); MyTestApp testApp(application); DALI_TEST_CHECK(application); END_TEST; } Change-Id: Icf3c19757bdc2b772bdc8fdd6ef1b67eba3f2c8b --- diff --git a/dali/internal/adaptor/common/application-impl.cpp b/dali/internal/adaptor/common/application-impl.cpp index 3efd7a552..d81c67b7e 100644 --- a/dali/internal/adaptor/common/application-impl.cpp +++ b/dali/internal/adaptor/common/application-impl.cpp @@ -111,6 +111,7 @@ Application::Application(int* argc, char** argv[], const std::string& stylesheet mLaunchpadState(Launchpad::NONE), mDefaultWindowType(windowData.GetWindowType()), mUseUiThread(useUiThread), + mIsSystemInitialized(false), mSlotDelegate(this) { // Set mName from command-line args @@ -151,7 +152,10 @@ Application::~Application() { delete mAdaptor; delete mAdaptorBuilder; - WindowSystem::Shutdown(); + if(mIsSystemInitialized) + { + WindowSystem::Shutdown(); + } } } @@ -213,6 +217,7 @@ void Application::CreateWindow() windowData.SetWindowType(mDefaultWindowType); WindowSystem::Initialize(); + mIsSystemInitialized = true; if(mLaunchpadState != Launchpad::PRE_INITIALIZED) { diff --git a/dali/internal/adaptor/common/application-impl.h b/dali/internal/adaptor/common/application-impl.h index ab1b2e830..812732260 100644 --- a/dali/internal/adaptor/common/application-impl.h +++ b/dali/internal/adaptor/common/application-impl.h @@ -540,6 +540,7 @@ private: WindowType mDefaultWindowType; ///< Default window's type. It is used when Application is created. bool mUseRemoteSurface; bool mUseUiThread; + bool mIsSystemInitialized; SlotDelegate mSlotDelegate;