control: Store signal packages as a reference

Switch from storing signal package data from a pointer to a reference.

Change-Id: I2d9051273e54709c0c8abd0c72f513bac36a2c89
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/control/json/manager.cpp b/control/json/manager.cpp
index e3de8dc..7202471 100644
--- a/control/json/manager.cpp
+++ b/control/json/manager.cpp
@@ -526,9 +526,9 @@
 }
 
 void Manager::handleSignal(sdbusplus::message::message& msg,
-                           const std::vector<SignalPkg>* pkgs)
+                           const std::vector<SignalPkg>& pkgs)
 {
-    for (auto& pkg : *pkgs)
+    for (auto& pkg : pkgs)
     {
         // Handle the signal callback and only run the actions if the handler
         // updated the cache for the given SignalObject
diff --git a/control/json/manager.hpp b/control/json/manager.hpp
index df6edb3..5e5b33c 100644
--- a/control/json/manager.hpp
+++ b/control/json/manager.hpp
@@ -101,12 +101,11 @@
 /**
  * Data associated to a subscribed signal
  * Tuple constructed of:
- *     std::unique_ptr<std::vector<SignalPkg>> =
- *         Pointer to the signal's packages
+ *     std::vector<SignalPkg> = List of the signal's packages
  *     std::unique_ptr<sdbusplus::server::match::match> =
  *         Pointer to match holding the subscription to a signal
  */
-using SignalData = std::tuple<std::unique_ptr<std::vector<SignalPkg>>,
+using SignalData = std::tuple<std::vector<SignalPkg>,
                               std::unique_ptr<sdbusplus::server::match::match>>;
 
 /**
@@ -402,7 +401,7 @@
      * @param[in] pkgs - Signal packages associated to the signal being handled
      */
     void handleSignal(sdbusplus::message::message& msg,
-                      const std::vector<SignalPkg>* pkgs);
+                      const std::vector<SignalPkg>& pkgs);
 
     /**
      * @brief Get the sdbusplus bus object
diff --git a/control/json/triggers/signal.cpp b/control/json/triggers/signal.cpp
index 28b2781..8b66c5f 100644
--- a/control/json/triggers/signal.cpp
+++ b/control/json/triggers/signal.cpp
@@ -50,8 +50,8 @@
     {
         // Signal subscription doesnt exist, add signal package and subscribe
         std::vector<SignalPkg> pkgs = {signalPkg};
-        std::unique_ptr<std::vector<SignalPkg>> dataPkgs =
-            std::make_unique<std::vector<SignalPkg>>(std::move(pkgs));
+        std::vector<SignalPkg> dataPkgs =
+            std::vector<SignalPkg>(std::move(pkgs));
         std::unique_ptr<sdbusplus::server::match::match> ptrMatch = nullptr;
         // TODO(ibm-openbmc/#3195) - Filter signal subscriptions to objects
         // owned by fan control?
@@ -61,7 +61,7 @@
             ptrMatch = std::make_unique<sdbusplus::server::match::match>(
                 mgr->getBus(), match.c_str(),
                 std::bind(std::mem_fn(&Manager::handleSignal), &(*mgr),
-                          std::placeholders::_1, dataPkgs.get()));
+                          std::placeholders::_1, dataPkgs));
         }
         signalData.emplace_back(std::move(dataPkgs), std::move(ptrMatch));
     }
@@ -69,9 +69,8 @@
     {
         // Signal subscription already exists
         // Only a single signal data entry tied to each match is supported
-        auto& pkgs = std::get<std::unique_ptr<std::vector<SignalPkg>>>(
-            signalData.front());
-        for (auto& pkg : *pkgs)
+        auto& pkgs = std::get<std::vector<SignalPkg>>(signalData.front());
+        for (auto& pkg : pkgs)
         {
             if (isSameSig(pkg))
             {
@@ -85,7 +84,7 @@
             else
             {
                 // Expected signal differs, add signal package
-                (*pkgs).emplace_back(std::move(signalPkg));
+                pkgs.emplace_back(std::move(signalPkg));
             }
         }
     }