From 2e6b06cb7a9e7797103c5476e97a974b087f69d3 Mon Sep 17 00:00:00 2001 From: Lukasz Bardeli Date: Tue, 17 Apr 2018 11:07:51 +0200 Subject: [PATCH] [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 --- src/application/application_manager.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/application/application_manager.cc b/src/application/application_manager.cc index 0a3aed81..7f84698f 100644 --- a/src/application/application_manager.cc +++ b/src/application/application_manager.cc @@ -117,6 +117,14 @@ ApplicationManager::~ApplicationManager() { StopAppInfoEventListener(); StopStatusChangeListener(); + 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); + } + if (app_status_handle_) { int ret = app_manager_event_destroy(app_status_handle_); if (APP_MANAGER_ERROR_NONE != ret) { -- 2.34.1