Index: dbus/bus.cc |
diff --git a/dbus/bus.cc b/dbus/bus.cc |
index 843739ce9e218fc7f313c6536b12995a73eed6f0..598056bf441f36afb04631e7bfd18a222fbf0005 100644 |
--- a/dbus/bus.cc |
+++ b/dbus/bus.cc |
@@ -293,6 +293,12 @@ void Bus::ShutdownAndBlock() { |
iter->second->Detach(); |
} |
+ // Release object proxies and exported objects here. We should do this |
+ // here rather than in the destructor to avoid memory leaks due to |
+ // cyclic references. |
+ object_proxy_table_.clear(); |
+ exported_object_table_.clear(); |
+ |
// Private connection should be closed. |
if (connection_) { |
if (connection_type_ == PRIVATE) |