Fix a bug with new interface signals
When creating new objects, Defer sending of interface added
signals until all interfaces have been created.
Change-Id: I031846861bb8f569be054e1d0303810fc0dd6ba6
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/manager.cpp b/manager.cpp
index 4f56e7a..264037f 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -148,8 +148,11 @@
// a container.
InterfaceComposite ref;
+ auto i = object.size();
for (auto& x : object)
{
+ // Defer sending any signals until the last interface.
+ auto deferSignals = --i != 0;
auto maker = _makers.find(x.first.c_str());
if (maker == _makers.end())
@@ -157,7 +160,7 @@
"Unimplemented interface: " + x.first);
ref.emplace(x.first,
- (maker->second)(_bus, path.str.c_str()));
+ (maker->second)(_bus, path.str.c_str(), deferSignals));
}
if (!ref.empty())