Fix pkgmgr_client_remove_listen_status 31/309831/2
authorIlho Kim <ilho159.kim@samsung.com>
Wed, 17 Apr 2024 05:40:03 +0000 (14:40 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Wed, 17 Apr 2024 10:00:04 +0000 (19:00 +0900)
Change-Id: Ib20d216f90a74c2e376f84623b6ff4615e5f98d6
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
client/src/api_stub.cc
client/src/connector.cc
client/src/connector.hh
client/src/signal_receiver.cc
client/src/signal_receiver.hh

index 20dc44d..16b01ff 100644 (file)
@@ -1222,8 +1222,7 @@ API int pkgmgr_client_remove_listen_status(pkgmgr_client *pc) {
 
   auto* con = static_cast<Connector*>(pc);
   try {
-    const auto& receiver = con->GetSignalReceiver();
-    receiver->RemoveEventHandler();
+    con->RemoveSignalReceiver();
     return PKGMGR_R_OK;
   } catch (...) {
     _E("Exception occured");
index a9e0948..1382998 100644 (file)
@@ -198,6 +198,11 @@ const std::unique_ptr<SignalReceiver>& Connector::GetSignalReceiver() {
   return signal_receiver_;
 }
 
+void Connector::RemoveSignalReceiver() {
+  if (signal_receiver_)
+    signal_receiver_.reset();
+}
+
 pkgmgr_client_type Connector::GetPcType() const {
   return pc_type_;
 }
index e81b6fe..3c794a8 100644 (file)
@@ -59,6 +59,7 @@ class Connector {
   std::vector<pp::ResPath>& GetResCopyPath();
   const std::string& GetTepPath();
   bool GetTepMove();
+  void RemoveSignalReceiver();
 
  private:
   bool ConnectForAdmin();
index fc669e8..b4761f0 100644 (file)
@@ -257,17 +257,6 @@ void SignalReceiver::SetStatusType(int status_type) {
 }
 
 
-void SignalReceiver::RemoveEventHandler() {
-  handlers_.clear();
-  global_handlers_.clear();
-  res_handlers_.clear();
-  global_res_handlers_.clear();
-  size_info_handlers_.clear();
-  global_size_info_handlers_.clear();
-  global_pkg_upgrade_handlers_.clear();
-}
-
-
 int SignalReceiver::GetRequestId() {
   return ++request_id_;
 }
index 65db908..18a4572 100644 (file)
@@ -58,7 +58,6 @@ class SignalReceiver : public pkg_group::PkgSignal {
       void* data);
   int AddEventHandler(pkgmgr_pkg_upgrade_handler event_cb, void* data);
   void SetStatusType(int status_type);
-  void RemoveEventHandler();
 
  private:
   static int GetRequestId();