fixup! Prevent memory leaks in settings and view manager 19/91919/2
authorMaciej Skrzypkowski <m.skrzypkows@samsung.com>
Wed, 12 Oct 2016 07:25:17 +0000 (09:25 +0200)
committerMaciej Skrzypkowski <m.skrzypkows@samsung.com>
Wed, 12 Oct 2016 07:34:43 +0000 (09:34 +0200)
Change-Id: I1b45f15e922f464641f80a9641858fc13efdd309

services/SimpleUI/SimpleUI.cpp
services/TabUI/TabUI.cpp
services/TabUI/TabUI.h

index a0ab262e7f64f2e5ffd80a8676292047122a0898..acd90731769231d79b8e186f8d8591dfae8e437a 100755 (executable)
@@ -459,16 +459,16 @@ void SimpleUI::connectTabsSignals()
         &m_storageService->getSettingsStorage(), _1, ""));
     m_tabUI->showPasswordUI.connect(boost::bind(&SimpleUI::showPasswordUI, this));
     m_tabUI->showNoPasswordWarning.connect(boost::bind(&SimpleUI::onFirstSecretMode, this));
-    m_tabUI->getPasswordUI().closeUI.connect(boost::bind(&SimpleUI::popTheStack, this));
-    m_tabUI->getPasswordUI().setDBStringParamValue.connect(boost::bind(&storage::SettingsStorage::setSettingsString,
+    m_tabUI->getPasswordUI()->closeUI.connect(boost::bind(&SimpleUI::popTheStack, this));
+    m_tabUI->getPasswordUI()->setDBStringParamValue.connect(boost::bind(&storage::SettingsStorage::setSettingsString,
         &m_storageService->getSettingsStorage(), _1, _2));
-    m_tabUI->getPasswordUI().setDBBoolParamValue.connect(boost::bind(&storage::SettingsStorage::setSettingsBool,
+    m_tabUI->getPasswordUI()->setDBBoolParamValue.connect(boost::bind(&storage::SettingsStorage::setSettingsBool,
         &m_storageService->getSettingsStorage(), _1, _2));
-    m_tabUI->getPasswordUI().getDBStringParamValue.connect(boost::bind(&storage::SettingsStorage::getSettingsText,
+    m_tabUI->getPasswordUI()->getDBStringParamValue.connect(boost::bind(&storage::SettingsStorage::getSettingsText,
         &m_storageService->getSettingsStorage(), _1, ""));
-    m_tabUI->getPasswordUI().getDBBoolParamValue.connect(boost::bind(&storage::SettingsStorage::getSettingsBool,
+    m_tabUI->getPasswordUI()->getDBBoolParamValue.connect(boost::bind(&storage::SettingsStorage::getSettingsBool,
         &m_storageService->getSettingsStorage(), _1, false));
-    m_tabUI->getPasswordUI().changeEngineState.connect(boost::bind(&SimpleUI::changeEngineState, this));
+    m_tabUI->getPasswordUI()->changeEngineState.connect(boost::bind(&SimpleUI::changeEngineState, this));
 }
 
 void SimpleUI::connectHistorySignals()
@@ -1951,7 +1951,7 @@ void SimpleUI::searchWebPage(std::string &text, int flags)
 void SimpleUI::showPasswordUI()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    pushViewToStack(sAUI(&m_tabUI->getPasswordUI()));
+    pushViewToStack(m_tabUI->getPasswordUI());
 }
 
 void SimpleUI::onFirstSecretMode()
index 57067d8a2025225c88fbc980b212bc181b718956..c46efe78690dd5b9c0a4282c4376b444be4e8573 100644 (file)
@@ -40,6 +40,7 @@ TabUI::TabUI()
     , m_last_pressed_gengrid_item(nullptr)
     , m_item_class(nullptr)
     , m_state(State::NORMAL)
+    , m_passwordUI(std::make_shared<PasswordUI>())
 {
     m_edjFilePath = EDJE_DIR;
     m_edjFilePath.append("TabUI/TabUI.edj");
@@ -96,7 +97,7 @@ void TabUI::init(Evas_Object* parent)
         BROWSER_LOGE("[%s:%d] unknow checkIfParamExistsInDB value!", __PRETTY_FUNCTION__, __LINE__);
     }
 
-    m_passwordUI.init(parent);
+    m_passwordUI->init(parent);
 }
 
 Evas_Object* TabUI::getContent()
@@ -269,7 +270,7 @@ void TabUI::_cm_secret_clicked(void* data, Evas_Object*, void*)
     if (data) {
         TabUI* tabUI = static_cast<TabUI*>(data);
         _cm_dismissed(nullptr, tabUI->m_ctxpopup, nullptr);
-        tabUI->m_passwordUI.setState(PasswordState::SecretModeData);
+        tabUI->m_passwordUI->setState(PasswordState::SecretModeData);
         tabUI->showPasswordUI();
     } else {
         BROWSER_LOGW("[%s] data = nullptr", __PRETTY_FUNCTION__);
@@ -330,8 +331,8 @@ void TabUI::_right_button_clicked(void * data, Evas_Object*, void*)
             self->newTabClicked();
             break;
         case State::PASSWORD_DECISION:
-            self->m_passwordUI.setState(PasswordState::CreatePassword);
-            self->m_passwordUI.setAction(PasswordAction::CreatePasswordFirstTime);
+            self->m_passwordUI->setState(PasswordState::CreatePassword);
+            self->m_passwordUI->setAction(PasswordAction::CreatePasswordFirstTime);
             self->showPasswordUI();
             break;
         default:
@@ -359,8 +360,8 @@ void TabUI::_left_button_clicked(void* data, Evas_Object*, void*)
                             self->changeEngineState();
                             self->refetchTabUIData();
                         } else {    // check password validity
-                            self->m_passwordUI.setState(PasswordState::ConfirmPassword);
-                            self->m_passwordUI.setAction(PasswordAction::ConfirmPasswordEnterSecret);
+                            self->m_passwordUI->setState(PasswordState::ConfirmPassword);
+                            self->m_passwordUI->setAction(PasswordAction::ConfirmPasswordEnterSecret);
                             self->showPasswordUI();
                         }
                     } else {
index 26e27bc6c3b9e407013b612f568f6adca853fc63..aa88bdcd8bcaeca09ab7c8cc33e52f1bea557da4 100644 (file)
@@ -56,7 +56,7 @@ public:
 
     //AbstractContextMenu interface implementation
     virtual void showContextMenu() override;
-    PasswordUI& getPasswordUI() { return m_passwordUI; };
+    std::shared_ptr<PasswordUI> getPasswordUI() { return m_passwordUI; };
     void switchToSecretFirstTime();
 
     boost::signals2::signal<void (const tizen_browser::basic_webengine::TabId&)> tabClicked;
@@ -126,7 +126,7 @@ private:
     std::string m_edjFilePath;
 
     State m_state;
-    PasswordUI m_passwordUI;
+    std::shared_ptr<PasswordUI> m_passwordUI;
 
     const unsigned int GENGRID_ITEM_WIDTH = 700;
     const unsigned int GENGRID_ITEM_HEIGHT = 312;