From 0757b917972141a5181912f3af900199b4e49384 Mon Sep 17 00:00:00 2001 From: Kevron Rees Date: Mon, 18 Aug 2014 10:27:19 -0700 Subject: [PATCH] fixed periodic crash when sending dbus signal --- plugins/dbus/dbussignaller.h | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/plugins/dbus/dbussignaller.h b/plugins/dbus/dbussignaller.h index a4d5da5..1ea3c1d 100644 --- a/plugins/dbus/dbussignaller.h +++ b/plugins/dbus/dbussignaller.h @@ -23,6 +23,11 @@ public: } + ~DBusSignal() + { + + } + bool operator == (const DBusSignal &other) const { return connection == other.connection && @@ -94,7 +99,7 @@ private: std::string interfaceName; std::string signalName; - std::unordered_map variantMap; + std::unordered_map variantMap; for(auto s : itr.second) { @@ -107,9 +112,10 @@ private: AbstractProperty* property = signal->property; auto val = g_variant_ref(property->toGVariant()); + std::string sequenceName = property->name() + "Sequence"; - variantMap[property->name().c_str()] = val; - variantMap[std::string(property->name() + "Sequence").c_str()] = g_variant_new("i", property->sequence()); + variantMap[property->name()] = val; + variantMap[sequenceName] = g_variant_new("i", property->sequence()); variantMap["Time"] = g_variant_new("d", property->timestamp()); variantMap["Zone"] = g_variant_new("i", property->value()->zone); } @@ -120,11 +126,12 @@ private: for(auto sv : variantMap) { /// Send PropertiesChanged signal - //auto key = amb::make_unique(sv.first); auto key = sv.first; - auto value = amb::make_super(g_variant_ref(sv.second)); + auto value = sv.second; + + DebugOut(0) << "key: " << key << endl; - g_variant_builder_add(&builder, "{sv}", key, value.get()); + g_variant_builder_add(&builder, "{sv}", key.c_str(), value); } GError* error = nullptr; -- 2.7.4