Index: content/renderer/bluetooth/web_bluetooth_impl.cc |
diff --git a/content/renderer/bluetooth/web_bluetooth_impl.cc b/content/renderer/bluetooth/web_bluetooth_impl.cc |
index 49358d0bdb28e33e6ce5bb5a008e0586f355f699..aa864efdaed89ab1433db06cf5fcfb5c2f651d9f 100644 |
--- a/content/renderer/bluetooth/web_bluetooth_impl.cc |
+++ b/content/renderer/bluetooth/web_bluetooth_impl.cc |
@@ -183,8 +183,12 @@ void WebBluetoothImpl::OnRequestDeviceComplete( |
void WebBluetoothImpl::GattServerDisconnected(const mojo::String& device_id) { |
auto device_iter = connected_devices_.find(device_id); |
if (device_iter != connected_devices_.end()) { |
- device_iter->second->dispatchGattServerDisconnected(); |
+ // Remove device from the map before calling dispatchGattServerDisconnected |
+ // to avoid deleting a device dispatchGattServerDisconnected might have |
Jeffrey Yasskin
2016/06/18 05:00:14
s/deleting/removing/, s/added/re-connected/, and s
ortuno
2016/06/18 20:01:20
Done.
|
+ // added. |
+ blink::WebBluetoothDevice* device = device_iter->second; |
connected_devices_.erase(device_iter); |
+ device->dispatchGattServerDisconnected(); |
} |
} |