Index: device/bluetooth/bluez/bluetooth_device_bluez.cc |
diff --git a/device/bluetooth/bluez/bluetooth_device_bluez.cc b/device/bluetooth/bluez/bluetooth_device_bluez.cc |
index 273169fb091696278867a6f09fefd502eb658689..2a91a49f6ab1af727b671461e7c4a7fa7b06ea38 100644 |
--- a/device/bluetooth/bluez/bluetooth_device_bluez.cc |
+++ b/device/bluetooth/bluez/bluetooth_device_bluez.cc |
@@ -11,6 +11,7 @@ |
#include <utility> |
#include "base/bind.h" |
+#include "base/memory/ptr_util.h" |
#include "base/metrics/histogram.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_util.h" |
@@ -180,7 +181,7 @@ BluetoothDeviceBlueZ::~BluetoothDeviceBlueZ() { |
for (const auto& iter : gatt_services_swapped) { |
DCHECK(adapter()); |
adapter()->NotifyGattServiceRemoved( |
- static_cast<BluetoothRemoteGattServiceBlueZ*>(iter.second)); |
+ static_cast<BluetoothRemoteGattServiceBlueZ*>(iter.second.get())); |
} |
} |
@@ -678,8 +679,7 @@ void BluetoothDeviceBlueZ::GattServiceAdded( |
BluetoothRemoteGattServiceBlueZ* service = |
new BluetoothRemoteGattServiceBlueZ(adapter(), this, object_path); |
- gatt_services_.set(service->GetIdentifier(), |
- std::unique_ptr<BluetoothRemoteGattService>(service)); |
+ gatt_services_[service->GetIdentifier()] = base::WrapUnique(service); |
DCHECK(service->object_path() == object_path); |
DCHECK(service->GetUUID().IsValid()); |
@@ -689,15 +689,14 @@ void BluetoothDeviceBlueZ::GattServiceAdded( |
void BluetoothDeviceBlueZ::GattServiceRemoved( |
const dbus::ObjectPath& object_path) { |
- GattServiceMap::const_iterator iter = |
- gatt_services_.find(object_path.value()); |
+ auto iter = gatt_services_.find(object_path.value()); |
if (iter == gatt_services_.end()) { |
VLOG(3) << "Unknown GATT service removed: " << object_path.value(); |
return; |
} |
BluetoothRemoteGattServiceBlueZ* service = |
- static_cast<BluetoothRemoteGattServiceBlueZ*>(iter->second); |
+ static_cast<BluetoothRemoteGattServiceBlueZ*>(iter->second.get()); |
VLOG(1) << "Removing remote GATT service with UUID: '" |
<< service->GetUUID().canonical_value() |
@@ -705,7 +704,8 @@ void BluetoothDeviceBlueZ::GattServiceRemoved( |
DCHECK(service->object_path() == object_path); |
std::unique_ptr<BluetoothRemoteGattService> scoped_service = |
- gatt_services_.take_and_erase(iter->first); |
+ std::move(gatt_services_[object_path.value()]); |
+ gatt_services_.erase(iter); |
DCHECK(adapter()); |
discovery_complete_notified_.erase(service); |