From 85accf2f38153274e9d8cb46d64b4927eeb4e67b Mon Sep 17 00:00:00 2001 From: Seungho Baek Date: Thu, 17 Jun 2021 12:02:28 +0900 Subject: [PATCH] Fix initialization of singleton variable in Transition-lifecycle-controller Change-Id: I6bd2c7c40e02a40775510f7950e865f67df65700 Signed-off-by: Seungho Baek --- .../transition/transition-lifecycle-controller.cpp | 12 +++++++++++- .../transition/transition-lifecycle-controller.h | 19 ++++--------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/dali-toolkit/internal/transition/transition-lifecycle-controller.cpp b/dali-toolkit/internal/transition/transition-lifecycle-controller.cpp index 1a8c238..e104adf 100644 --- a/dali-toolkit/internal/transition/transition-lifecycle-controller.cpp +++ b/dali-toolkit/internal/transition/transition-lifecycle-controller.cpp @@ -30,13 +30,23 @@ namespace Toolkit { namespace Internal { +std::unique_ptr TransitionLifecycleController::mInstance = nullptr; +std::once_flag TransitionLifecycleController::mOnceFlag; + +TransitionLifecycleController& TransitionLifecycleController::GetInstance() +{ + std::call_once(mOnceFlag, []() + { mInstance.reset(new TransitionLifecycleController); }); + return *(mInstance.get()); +} + void TransitionLifecycleController::AddTransitions(Dali::Toolkit::TransitionSet transitions) { mTransitionList.push_back(transitions); transitions.FinishedSignal().Connect(this, &TransitionLifecycleController::RemoveTransitions); } -void TransitionLifecycleController::RemoveTransitions(Dali::Toolkit::TransitionSet &transitions) +void TransitionLifecycleController::RemoveTransitions(Dali::Toolkit::TransitionSet& transitions) { mTransitionList.erase(std::remove(mTransitionList.begin(), mTransitionList.end(), transitions)); } diff --git a/dali-toolkit/internal/transition/transition-lifecycle-controller.h b/dali-toolkit/internal/transition/transition-lifecycle-controller.h index 8511635..b064f1e 100644 --- a/dali-toolkit/internal/transition/transition-lifecycle-controller.h +++ b/dali-toolkit/internal/transition/transition-lifecycle-controller.h @@ -33,24 +33,11 @@ namespace Toolkit { namespace Internal { -class TransitionLifecycleController; - -namespace -{ -std::unique_ptr instance = nullptr; -std::once_flag onceFlag; -} // namespace class TransitionLifecycleController : public ConnectionTracker { public: - static TransitionLifecycleController& GetInstance() - { - std::call_once(onceFlag, []() { - instance.reset(new TransitionLifecycleController); - }); - return *(instance.get()); - } + static TransitionLifecycleController& GetInstance(); void AddTransitions(Dali::Toolkit::TransitionSet transitions); @@ -70,7 +57,9 @@ private: TransitionLifecycleController& operator=(const TransitionLifecycleController& rhs) = delete; private: - std::vector mTransitionList; + std::vector mTransitionList; + static std::unique_ptr mInstance; + static std::once_flag mOnceFlag; }; } // namespace Internal -- 2.7.4