summaryrefslogtreecommitdiffstats
path: root/dbus
diff options
context:
space:
mode:
authorhashimoto <hashimoto@chromium.org>2015-03-29 23:52:21 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-30 06:53:12 +0000
commit9aa653d4ac52f2c89bfa5164a5eddd8164bb9987 (patch)
tree2f49fcb1fb8d3a9199b1987ddbc3a0efba146090 /dbus
parentb306439a4bf1a6bec2658994a9529e305f553148 (diff)
downloadchromium_src-9aa653d4ac52f2c89bfa5164a5eddd8164bb9987.zip
chromium_src-9aa653d4ac52f2c89bfa5164a5eddd8164bb9987.tar.gz
chromium_src-9aa653d4ac52f2c89bfa5164a5eddd8164bb9987.tar.bz2
Stop deleting ObjectProxy::OnPendingCallIsCompleteData manually
Instead, let libdbus handle it. This also makes it easier to implement method call cancellation. BUG=471175 Review URL: https://codereview.chromium.org/1032263002 Cr-Commit-Position: refs/heads/master@{#322746}
Diffstat (limited to 'dbus')
-rw-r--r--dbus/object_proxy.cc3
-rw-r--r--dbus/util.h7
2 files changed, 8 insertions, 2 deletions
diff --git a/dbus/object_proxy.cc b/dbus/object_proxy.cc
index 7347db0..974b24c 100644
--- a/dbus/object_proxy.cc
+++ b/dbus/object_proxy.cc
@@ -275,7 +275,7 @@ void ObjectProxy::StartAsyncMethodCall(int timeout_ms,
pending_call,
&ObjectProxy::OnPendingCallIsCompleteThunk,
data,
- NULL);
+ &DeleteVoidPointer<OnPendingCallIsCompleteData>);
CHECK(success) << "Unable to allocate memory";
dbus_pending_call_unref(pending_call);
@@ -367,7 +367,6 @@ void ObjectProxy::OnPendingCallIsCompleteThunk(DBusPendingCall* pending_call,
data->response_callback,
data->error_callback,
data->start_time);
- delete data;
}
bool ObjectProxy::ConnectToNameOwnerChangedSignal() {
diff --git a/dbus/util.h b/dbus/util.h
index b983b6f..b05834d 100644
--- a/dbus/util.h
+++ b/dbus/util.h
@@ -23,6 +23,13 @@ CHROME_DBUS_EXPORT std::string GetAbsoluteMemberName(
const std::string& interface_name,
const std::string& member_name);
+// Similar to base::DeletePointer, but takes void* as an argument.
+// Used as DBusFreeFunction.
+template<typename T>
+void DeleteVoidPointer(void* memory) {
+ delete static_cast<T*>(memory);
+}
+
} // namespace dbus
#endif // DBUS_UTIL_H_