diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2016-09-02 01:15:06 +0200 | 
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2016-09-02 01:15:06 +0200 | 
| commit | e5283925ea7fcfc020df384dd8c49163391fb1bc (patch) | |
| tree | 0cdd9a575b26c71c49719a499267ccf93b4eaa9c /unity-shared | |
| parent | 7fb9c4688cab4d402daa581dd387993205c58bc7 (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.cpp | 17 | 
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*) {});  }  // | 
