diff options
-rw-r--r-- | chromeos-dbus-bindings/proxy_generator.cc | 6 | ||||
-rw-r--r-- | chromeos-dbus-bindings/proxy_generator_unittest.cc | 16 |
2 files changed, 22 insertions, 0 deletions
diff --git a/chromeos-dbus-bindings/proxy_generator.cc b/chromeos-dbus-bindings/proxy_generator.cc index 717740d..396c3d0 100644 --- a/chromeos-dbus-bindings/proxy_generator.cc +++ b/chromeos-dbus-bindings/proxy_generator.cc @@ -399,6 +399,12 @@ void ProxyGenerator::AddDestructor(const string& class_name, IndentedText* text) { IndentedText block; block.AddLine(StringPrintf("~%s() override {", class_name.c_str())); + block.PushOffset(kBlockOffset); + block.AddLine("bus_->RemoveObjectProxy("); + block.AddLineWithOffset( + "service_name_, object_path_, base::Bind(&base::DoNothing));", + kLineContinuationOffset); + block.PopOffset(); block.AddLine("}"); text->AddBlock(block); } diff --git a/chromeos-dbus-bindings/proxy_generator_unittest.cc b/chromeos-dbus-bindings/proxy_generator_unittest.cc index 75b7e9f..9eb930f 100644 --- a/chromeos-dbus-bindings/proxy_generator_unittest.cc +++ b/chromeos-dbus-bindings/proxy_generator_unittest.cc @@ -138,6 +138,8 @@ class TestInterfaceProxy final : public TestInterfaceProxyInterface { } ~TestInterfaceProxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void RegisterCloserSignalHandler( @@ -348,6 +350,8 @@ class TestInterface2Proxy final : public TestInterface2ProxyInterface { } ~TestInterface2Proxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void ReleaseObjectProxy(const base::Closure& callback) { @@ -452,6 +456,8 @@ class TestInterfaceProxy final : public TestInterfaceProxyInterface { } ~TestInterfaceProxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void RegisterCloserSignalHandler( @@ -515,6 +521,8 @@ class TestInterface2Proxy final : public TestInterface2ProxyInterface { } ~TestInterface2Proxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void ReleaseObjectProxy(const base::Closure& callback) { @@ -621,6 +629,8 @@ class Itf1Proxy final : public Itf1ProxyInterface { } ~Itf1Proxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void RegisterCloserSignalHandler( @@ -720,6 +730,8 @@ class Itf2Proxy final : public Itf2ProxyInterface { } ~Itf2Proxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void ReleaseObjectProxy(const base::Closure& callback) { @@ -993,6 +1005,8 @@ class Itf1Proxy final : public Itf1ProxyInterface { } ~Itf1Proxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void RegisterCloserSignalHandler( @@ -1070,6 +1084,8 @@ class Itf2Proxy final : public Itf2ProxyInterface { } ~Itf2Proxy() override { + bus_->RemoveObjectProxy( + service_name_, object_path_, base::Bind(&base::DoNothing)); } void ReleaseObjectProxy(const base::Closure& callback) { |