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/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));
}
}
}