| Index: device/bluetooth/bluetooth_adapter_android.cc
|
| diff --git a/device/bluetooth/bluetooth_adapter_android.cc b/device/bluetooth/bluetooth_adapter_android.cc
|
| index 41228bb635bae3ac24c26c8b50bb22d539a22013..01995d439cf3e625e9df56ccb0ae3fbee43a5e4b 100644
|
| --- a/device/bluetooth/bluetooth_adapter_android.cc
|
| +++ b/device/bluetooth/bluetooth_adapter_android.cc
|
| @@ -197,7 +197,7 @@ void BluetoothAdapterAndroid::CreateOrUpdateDeviceOnScan(
|
| device_android = device_android_owner.get();
|
| } else {
|
| // Existing device.
|
| - device_android = static_cast<BluetoothDeviceAndroid*>(iter->second);
|
| + device_android = static_cast<BluetoothDeviceAndroid*>(iter->second.get());
|
| }
|
| DCHECK(device_android);
|
|
|
| @@ -219,9 +219,12 @@ void BluetoothAdapterAndroid::CreateOrUpdateDeviceOnScan(
|
| tx_power == INT32_MIN ? nullptr : &clamped_tx_power);
|
|
|
| if (is_new_device) {
|
| - devices_.add(device_address, std::move(device_android_owner));
|
| - for (auto& observer : observers_)
|
| - observer.DeviceAdded(this, device_android);
|
| + auto insertion = devices_.insert(
|
| + std::make_pair(device_address, std::move(device_android_owner)));
|
| + if (insertion.second) {
|
| + for (auto& observer : observers_)
|
| + observer.DeviceAdded(this, insertion.first->second.get());
|
| + }
|
| } else {
|
| for (auto& observer : observers_)
|
| observer.DeviceChanged(this, device_android);
|
|
|