Index: tools/android/forwarder2/device_controller.cc |
diff --git a/tools/android/forwarder2/device_controller.cc b/tools/android/forwarder2/device_controller.cc |
index 37b754b311c8c2ec33bed5ca52278241283af9ec..a4cb9c75dc37a319eb933cf1de18b6a578163fca 100644 |
--- a/tools/android/forwarder2/device_controller.cc |
+++ b/tools/android/forwarder2/device_controller.cc |
@@ -141,17 +141,18 @@ void DeviceController::AcceptHostCommandInternal() { |
void DeviceController::DeleteListenerOnError( |
const base::WeakPtr<DeviceController>& device_controller_ptr, |
scoped_ptr<DeviceListener> device_listener) { |
+ DeviceListener* const listener = device_listener.release(); |
DeviceController* const controller = device_controller_ptr.get(); |
if (!controller) { |
- // |device_listener| was already deleted by the controller that did have |
- // its ownership. |
- ignore_result(device_listener.release()); |
+ // |listener| was already deleted by the controller that did have its |
+ // ownership. |
return; |
} |
DCHECK(controller->construction_task_runner_->RunsTasksOnCurrentThread()); |
bool listener_did_exist = DeleteRefCountedValueInMap( |
- device_listener->listener_port(), &controller->listeners_); |
+ listener->listener_port(), &controller->listeners_); |
DCHECK(listener_did_exist); |
+ // Note that |listener| was deleted by DeleteRefCountedValueInMap(). |
} |
} // namespace forwarder |