From: Seungho Baek Date: Thu, 17 Jun 2021 03:02:28 +0000 (+0900) Subject: Fix initialization of singleton variable in Transition-lifecycle-controller X-Git-Tag: dali_2.0.33~10^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=85accf2f38153274e9d8cb46d64b4927eeb4e67b Fix initialization of singleton variable in Transition-lifecycle-controller Change-Id: I6bd2c7c40e02a40775510f7950e865f67df65700 Signed-off-by: Seungho Baek --- 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