[Systeminfo] Fix core dump in SystemInfoManager 68/148368/1
authorJakub Skowron <j.skowron@samsung.com>
Thu, 7 Sep 2017 14:41:04 +0000 (16:41 +0200)
committerJakub Skowron <j.skowron@samsung.com>
Thu, 7 Sep 2017 14:41:04 +0000 (16:41 +0200)
Cellular network listener was not unregistered, which caused
core dump if network status changed after SystemInfoManager
destructor.
This is a hack, more robust solution should be developed.

Change-Id: Id4d26492426028a87ebaf1109e4f7750dd10b7c4
Signed-off-by: Jakub Skowron <j.skowron@samsung.com>
src/systeminfo/systeminfo_manager.cc

index a0bdc62e9761994111d5110b778b373a8d344f0a..817698e49c373f7ebc33c6aac107909272cdf9d3 100644 (file)
@@ -503,9 +503,9 @@ SysteminfoManager::~SysteminfoManager() {
   if (IsListenerRegistered(kPropertyIdDeviceOrientation)) { UnregisterDeviceOrientationListener(); }
   if (IsListenerRegistered(kPropertyIdLocale)) { UnregisterLocaleListener(); }
   if (IsListenerRegistered(kPropertyIdNetwork)) { UnregisterNetworkListener(); }
-  if (IsListenerRegistered(kPropertyIdWifiNetwork)) { UnregisterWifiNetworkListener(); }
-  if (IsListenerRegistered(kPropertyIdEthernetNetwork)) { UnregisterEthernetNetworkListener(); }
-  if (IsListenerRegistered(kPropertyIdCellularNetwork)) { UnregisterCellularNetworkListener(); }
+  if (IsListenerRegistered(kPropertyIdWifiNetwork)) { registered_listeners_.erase(kPropertyIdWifiNetwork)/*HACK*/; UnregisterWifiNetworkListener(); }
+  if (IsListenerRegistered(kPropertyIdEthernetNetwork)) { registered_listeners_.erase(kPropertyIdEthernetNetwork)/*HACK*/; UnregisterEthernetNetworkListener(); }
+  if (IsListenerRegistered(kPropertyIdCellularNetwork)) { registered_listeners_.erase(kPropertyIdCellularNetwork)/*HACK*/; UnregisterCellularNetworkListener(); }
   if (IsListenerRegistered(kPropertyIdPeripheral)) { UnregisterPeripheralListener(); }
   if (IsListenerRegistered(kPropertyIdMemory)) { UnregisterMemoryListener(); }
   if (IsListenerRegistered(kPropertyIdCameraFlash)) { UnregisterCameraFlashListener(); }