summaryrefslogtreecommitdiff
path: root/unity-shared
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2016-09-02 01:15:06 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2016-09-02 01:15:06 +0200
commite5283925ea7fcfc020df384dd8c49163391fb1bc (patch)
tree0cdd9a575b26c71c49719a499267ccf93b4eaa9c /unity-shared
parent7fb9c4688cab4d402daa581dd387993205c58bc7 (diff)
UpstartWrapper: don't keep the proxy around, we don't need it to stay forever
Just create it on demand (bzr r4177.4.11)
Diffstat (limited to 'unity-shared')
-rw-r--r--unity-shared/UpstartWrapper.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/unity-shared/UpstartWrapper.cpp b/unity-shared/UpstartWrapper.cpp
index daf49e7dc..b5986b918 100644
--- a/unity-shared/UpstartWrapper.cpp
+++ b/unity-shared/UpstartWrapper.cpp
@@ -37,22 +37,23 @@ public:
void Emit(std::string const& name);
private:
- glib::DBusProxy::Ptr upstart_proxy_;
+ bool test_mode_;
};
UpstartWrapper::Impl::Impl(bool test_mode)
+ : test_mode_(test_mode)
+{}
+
+void UpstartWrapper::Impl::Emit(std::string const& name)
{
auto flags = static_cast<GDBusProxyFlags>(G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS);
- upstart_proxy_ = std::make_shared<unity::glib::DBusProxy>(test_mode ? "com.canonical.Unity.Test.Upstart" : DBUS_SERVICE_UPSTART,
- DBUS_PATH_UPSTART, DBUS_INTERFACE_UPSTART,
- G_BUS_TYPE_SESSION, flags);
-}
+ auto proxy = std::make_shared<unity::glib::DBusProxy>(test_mode_ ? "com.canonical.Unity.Test.Upstart" : DBUS_SERVICE_UPSTART,
+ DBUS_PATH_UPSTART, DBUS_INTERFACE_UPSTART,
+ G_BUS_TYPE_SESSION, flags);
-void UpstartWrapper::Impl::Emit(std::string const& name)
-{
- upstart_proxy_->Call("EmitEvent", g_variant_new("(sasb)", name.c_str(), nullptr, 0));
+ proxy->Call("EmitEvent", g_variant_new("(sasb)", name.c_str(), nullptr, 0), [proxy] (GVariant*) {});
}
//