From: Lukasz Bardeli Date: Tue, 17 Apr 2018 08:45:24 +0000 (+0200) Subject: [Application] Add removing event_handler in destructor. X-Git-Tag: submit/tizen_3.0/20180418.103754~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4ccba17e546a3d8278217c4702a2c3590bfe5b6d;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Application] Add removing event_handler in destructor. Removing all event_handler from events while closing application. Without removing event_handler it is possible that native api will call event with destroyed data. This fix is to prevent such situation [Verification] Code compiles without error. TCT passrate 100% Change-Id: I94d1fbb85ad47ca6dbcba6c56cd043521952860e Signed-off-by: Lukasz Bardeli --- diff --git a/src/application/application_manager.cc b/src/application/application_manager.cc index 821f0fd9..5ac925ee 100644 --- a/src/application/application_manager.cc +++ b/src/application/application_manager.cc @@ -103,6 +103,13 @@ ApplicationManager::ApplicationManager(ApplicationInstance& instance) ApplicationManager::~ApplicationManager() { ScopeLogger(); StopAppInfoEventListener(); + for (auto it = event_handler_map_.begin(); it != event_handler_map_.end();) { + int ret = event_remove_event_handler(it->second); + if (EVENT_ERROR_NONE != ret) { + LoggerE("event_remove_event_handler failed, error: %d (%s)", ret, get_error_message(ret)); + } + it = event_handler_map_.erase(it); + } } void ApplicationManager::GetCurrentApplication(const std::string& app_id, picojson::object* out) {