From af2ed2c004a02f0a0eae9fc32bfd8a360afbaca6 Mon Sep 17 00:00:00 2001 From: Lukasz Stanislawski Date: Mon, 17 Oct 2016 17:32:42 +0200 Subject: [PATCH] MainController: add initialization check Add initialization flag to avoid multiple initialization problem. Change-Id: I80e796301999e06cd18d50dcee46deb6dd620e49 --- clock/inc/Controller/MainController.h | 5 +++++ clock/src/Controller/MainController.cpp | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/clock/inc/Controller/MainController.h b/clock/inc/Controller/MainController.h index fa11c51..a0a83f2 100644 --- a/clock/inc/Controller/MainController.h +++ b/clock/inc/Controller/MainController.h @@ -146,6 +146,11 @@ namespace controller { * @brief global events subscriptions vector */ std::vector listeners_; + + /** + * @brief intiialized flag + */ + bool initialized_; }; } diff --git a/clock/src/Controller/MainController.cpp b/clock/src/Controller/MainController.cpp index 16e7a22..3aeba55 100644 --- a/clock/src/Controller/MainController.cpp +++ b/clock/src/Controller/MainController.cpp @@ -39,7 +39,8 @@ MainController &MainController::GetInstance() MainController::MainController() : edit_page_(main_view_), delete_page_(main_view_), - delete_presenter_(nullptr), edit_presenter_(nullptr) + delete_presenter_(nullptr), edit_presenter_(nullptr), + initialized_(false) { } @@ -60,6 +61,8 @@ void MainController::Resume() int MainController::Init() { + if (initialized_) return 0; + world_clock_model_ = new model::WorldClock(); stop_watch_model_ = new model::StopWatch(); timer_model_ = new model::Timer(); @@ -76,11 +79,14 @@ int MainController::Init() listeners_.push_back(utils::EventBus::AddListener( std::bind(&MainController::CreateEditAlarmPage, this, _1))); + initialized_ = true; return 0; } void MainController::Deinit() { + if (!initialized_) return; + delete alarm_presenter_; delete world_clock_presenter_; @@ -93,6 +99,7 @@ void MainController::Deinit() delete timer_model_; listeners_.clear(); + initialized_ = false; } void MainController::CreateNewAlarmPage(Event &e) -- 2.7.4