Use a vector for events
The events structure is never inserted into, searched and
the keys aren't used. This was a poor choice of data
structure.
Change-Id: I46135e9128b3380712234e86674e53af10b37053
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/generated.mako.cpp b/generated.mako.cpp
index fdde31c..862b3b2 100644
--- a/generated.mako.cpp
+++ b/generated.mako.cpp
@@ -37,7 +37,6 @@
% if e.get('description'):
// ${e['description']}
% endif
- "${e['name']}",
std::make_tuple(
% for i, s in enumerate(e['signature'].items()):
% if i + 1 == len(e['signature']):
diff --git a/manager.cpp b/manager.cpp
index 00bf833..cf3c59c 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -66,13 +66,13 @@
std::make_unique<SigArg>(
std::make_tuple(
this,
- &x.second)));
+ &x)));
// Register our callback and the context for
// each event.
_matches.emplace_back(
sdbusplus::server::match::match(
_bus,
- std::get<0>(x.second),
+ std::get<0>(x),
details::_signal,
_sigargs.back().get()));
}
diff --git a/manager.hpp b/manager.hpp
index 17f950f..5c694b5 100644
--- a/manager.hpp
+++ b/manager.hpp
@@ -109,7 +109,7 @@
using HolderPtr = std::unique_ptr<details::holder::Base>;
using InterfaceComposite = std::map<std::string, HolderPtr>;
using ObjectReferences = std::map<std::string, InterfaceComposite>;
- using Events = std::map<const char *, Event>;
+ using Events = std::vector<Event>;
using MakerType = HolderPtr(*)(
sdbusplus::bus::bus &, const char *);
using Makers = std::map<std::string, MakerType>;