summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chromeos-dbus-bindings/proxy_generator.cc6
-rw-r--r--chromeos-dbus-bindings/proxy_generator_unittest.cc16
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) {