Merge "Fix initialization of singleton variable in Transition-lifecycle-controller...
authorSeungho BAEK <sbsh.baek@samsung.com>
Fri, 25 Jun 2021 01:54:48 +0000 (01:54 +0000)
committerGerrit Code Review <gerrit@review>
Fri, 25 Jun 2021 01:54:48 +0000 (01:54 +0000)
dali-toolkit/internal/transition/transition-lifecycle-controller.cpp
dali-toolkit/internal/transition/transition-lifecycle-controller.h

index 1a8c238..e104adf 100644 (file)
@@ -30,13 +30,23 @@ namespace Toolkit
 {
 namespace Internal
 {
+std::unique_ptr<TransitionLifecycleController> 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::TransitionSettransitions)
 {
   mTransitionList.erase(std::remove(mTransitionList.begin(), mTransitionList.end(), transitions));
 }
index 8511635..b064f1e 100644 (file)
@@ -33,24 +33,11 @@ namespace Toolkit
 {
 namespace Internal
 {
-class TransitionLifecycleController;
-
-namespace
-{
-std::unique_ptr<TransitionLifecycleController> 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<Dali::Toolkit::TransitionSet> mTransitionList;
+  std::vector<Dali::Toolkit::TransitionSet>             mTransitionList;
+  static std::unique_ptr<TransitionLifecycleController> mInstance;
+  static std::once_flag                                 mOnceFlag;
 };
 
 } // namespace Internal