| Index: dbus/exported_object.cc
|
| diff --git a/dbus/exported_object.cc b/dbus/exported_object.cc
|
| index f9ddb62f3f55b4efcd6db6f08563da62ad47a2b1..b8cfbc54c5b0eeee83f07ed43a12f35b2cfca79d 100644
|
| --- a/dbus/exported_object.cc
|
| +++ b/dbus/exported_object.cc
|
| @@ -218,16 +218,16 @@ DBusHandlerResult ExportedObject::HandleMessage(
|
| base::Bind(&ExportedObject::RunMethod,
|
| this,
|
| iter->second,
|
| - method_call.release(),
|
| + base::Passed(&method_call),
|
| start_time));
|
| } else {
|
| // If the D-Bus thread is not used, just call the method directly.
|
| - MethodCall* released_method_call = method_call.release();
|
| - iter->second.Run(released_method_call,
|
| + MethodCall* method = method_call.get();
|
| + iter->second.Run(method,
|
| base::Bind(&ExportedObject::SendResponse,
|
| this,
|
| start_time,
|
| - released_method_call));
|
| + base::Passed(&method_call)));
|
| }
|
|
|
| // It's valid to say HANDLED here, and send a method response at a later
|
| @@ -236,38 +236,37 @@ DBusHandlerResult ExportedObject::HandleMessage(
|
| }
|
|
|
| void ExportedObject::RunMethod(MethodCallCallback method_call_callback,
|
| - MethodCall* method_call,
|
| + scoped_ptr<MethodCall> method_call,
|
| base::TimeTicks start_time) {
|
| bus_->AssertOnOriginThread();
|
| - method_call_callback.Run(method_call,
|
| + MethodCall* method = method_call.get();
|
| + method_call_callback.Run(method,
|
| base::Bind(&ExportedObject::SendResponse,
|
| this,
|
| start_time,
|
| - method_call));
|
| + base::Passed(&method_call)));
|
| }
|
|
|
| void ExportedObject::SendResponse(base::TimeTicks start_time,
|
| - MethodCall* method_call,
|
| - Response* response) {
|
| + scoped_ptr<MethodCall> method_call,
|
| + scoped_ptr<Response> response) {
|
| DCHECK(method_call);
|
| if (bus_->HasDBusThread()) {
|
| bus_->PostTaskToDBusThread(FROM_HERE,
|
| base::Bind(&ExportedObject::OnMethodCompleted,
|
| this,
|
| - method_call,
|
| - response,
|
| + base::Passed(&method_call),
|
| + base::Passed(&response),
|
| start_time));
|
| } else {
|
| - OnMethodCompleted(method_call, response, start_time);
|
| + OnMethodCompleted(method_call.Pass(), response.Pass(), start_time);
|
| }
|
| }
|
|
|
| -void ExportedObject::OnMethodCompleted(MethodCall* method_call,
|
| - Response* response,
|
| +void ExportedObject::OnMethodCompleted(scoped_ptr<MethodCall> method_call,
|
| + scoped_ptr<Response> response,
|
| base::TimeTicks start_time) {
|
| bus_->AssertOnDBusThread();
|
| - scoped_ptr<MethodCall> method_call_deleter(method_call);
|
| - scoped_ptr<Response> response_deleter(response);
|
|
|
| // Record if the method call is successful, or not. 1 if successful.
|
| UMA_HISTOGRAM_ENUMERATION("DBus.ExportedMethodHandleSuccess",
|
| @@ -283,7 +282,7 @@ void ExportedObject::OnMethodCompleted(MethodCall* method_call,
|
| // Something bad happened in the method call.
|
| scoped_ptr<dbus::ErrorResponse> error_response(
|
| ErrorResponse::FromMethodCall(
|
| - method_call,
|
| + method_call.get(),
|
| DBUS_ERROR_FAILED,
|
| "error occurred in " + method_call->GetMember()));
|
| bus_->Send(error_response->raw_message(), NULL);
|
|
|