| 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); | 
|  |