summaryrefslogtreecommitdiffstats
path: root/dbus/object_proxy.cc
diff options
context:
space:
mode:
authorkeybuk@chromium.org <keybuk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-21 23:39:17 +0000
committerkeybuk@chromium.org <keybuk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-21 23:39:17 +0000
commit3b6205cfb6b12f5e1368b6cc57e24debec56e434 (patch)
treef918f074b479de8e02dc4b758884458ff9e9f415 /dbus/object_proxy.cc
parentd60237b308273eb22b96b4247b1a9d12d7e99dfe (diff)
downloadchromium_src-3b6205cfb6b12f5e1368b6cc57e24debec56e434.zip
chromium_src-3b6205cfb6b12f5e1368b6cc57e24debec56e434.tar.gz
chromium_src-3b6205cfb6b12f5e1368b6cc57e24debec56e434.tar.bz2
dbus: don't fail when reconnecting object signals
Since dbus::ObjectProxy is silently cached, with no way to invalidate, it's possible that individual instances of objects will come and go using the same underlying object proxy. i.e. dbus::PropertySet These will need to change the signal callbacks to be bound to their own instance, so the current behaviour of failing in this case with a log message is pessimal. Change dbus::ObjectProxy to overwrite the existing signal callbacks with the new ones on repeated calls, rather than preserve the first. BUG=chromium-os:28064 TEST=unit test included, and we receive property notifications on devices after connection now Change-Id: Ic4ae092163a364c53bdfcf88f4ce8f74b110b5cb R=satorux@chromium.org Review URL: http://codereview.chromium.org/9808001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128100 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus/object_proxy.cc')
-rw-r--r--dbus/object_proxy.cc6
1 files changed, 0 insertions, 6 deletions
diff --git a/dbus/object_proxy.cc b/dbus/object_proxy.cc
index 0784ea7..0cbd93e 100644
--- a/dbus/object_proxy.cc
+++ b/dbus/object_proxy.cc
@@ -281,14 +281,8 @@ void ObjectProxy::ConnectToSignalInternal(
OnConnectedCallback on_connected_callback) {
bus_->AssertOnDBusThread();
- // Check if the object is already connected to the signal.
const std::string absolute_signal_name =
GetAbsoluteSignalName(interface_name, signal_name);
- if (method_table_.find(absolute_signal_name) != method_table_.end()) {
- LOG(ERROR) << "The object proxy is already connected to "
- << absolute_signal_name;
- return;
- }
// Will become true, if everything is successful.
bool success = false;