Index: device/bluetooth/bluetooth_adapter_win.cc |
diff --git a/device/bluetooth/bluetooth_adapter_win.cc b/device/bluetooth/bluetooth_adapter_win.cc |
index 1bacaacf9b369bc692758ba72d4a1a483fdca2f0..2a53da31796f06b4f4a33fae5ead03d671f98008 100644 |
--- a/device/bluetooth/bluetooth_adapter_win.cc |
+++ b/device/bluetooth/bluetooth_adapter_win.cc |
@@ -10,6 +10,7 @@ |
#include "base/location.h" |
#include "base/logging.h" |
+#include "base/memory/ptr_util.h" |
#include "base/sequenced_task_runner.h" |
#include "base/single_thread_task_runner.h" |
#include "base/stl_util.h" |
@@ -234,58 +235,46 @@ void BluetoothAdapterWin::DevicesPolled( |
// new list with the list we know of (|devices_|) and raise corresponding |
// DeviceAdded, DeviceRemoved and DeviceChanged events. |
- typedef std::set<std::string> DeviceAddressSet; |
+ using DeviceAddressSet = std::set<std::string>; |
DeviceAddressSet known_devices; |
- for (DevicesMap::const_iterator iter = devices_.begin(); |
- iter != devices_.end(); |
- ++iter) { |
- known_devices.insert((*iter).first); |
- } |
+ for (const auto& device : devices_) |
+ known_devices.insert(device.first); |
DeviceAddressSet new_devices; |
- for (ScopedVector<BluetoothTaskManagerWin::DeviceState>::const_iterator iter = |
- devices.begin(); |
- iter != devices.end(); |
- ++iter) { |
+ for (auto iter = devices.begin(); iter != devices.end(); ++iter) |
new_devices.insert((*iter)->address); |
- } |
- // Process device removal first |
+ // Process device removal first. |
DeviceAddressSet removed_devices = |
base::STLSetDifference<DeviceAddressSet>(known_devices, new_devices); |
- for (DeviceAddressSet::const_iterator iter = removed_devices.begin(); |
- iter != removed_devices.end(); |
- ++iter) { |
- std::unique_ptr<BluetoothDevice> device_win = |
- devices_.take_and_erase(*iter); |
+ for (const auto& device : removed_devices) { |
+ auto it = devices_.find(device); |
+ std::unique_ptr<BluetoothDevice> device_win = std::move(it->second); |
+ devices_.erase(it); |
for (auto& observer : observers_) |
observer.DeviceRemoved(this, device_win.get()); |
} |
- // Process added and (maybe) changed devices in one pass |
+ // Process added and (maybe) changed devices in one pass. |
DeviceAddressSet added_devices = |
base::STLSetDifference<DeviceAddressSet>(new_devices, known_devices); |
DeviceAddressSet changed_devices = |
base::STLSetIntersection<DeviceAddressSet>(known_devices, new_devices); |
- for (ScopedVector<BluetoothTaskManagerWin::DeviceState>::const_iterator iter = |
- devices.begin(); |
- iter != devices.end(); |
- ++iter) { |
+ for (auto iter = devices.begin(); iter != devices.end(); ++iter) { |
BluetoothTaskManagerWin::DeviceState* device_state = (*iter); |
if (added_devices.find(device_state->address) != added_devices.end()) { |
BluetoothDeviceWin* device_win = |
new BluetoothDeviceWin(this, *device_state, ui_task_runner_, |
socket_thread_, NULL, net::NetLogSource()); |
- devices_.set(device_state->address, |
- std::unique_ptr<BluetoothDevice>(device_win)); |
+ devices_[device_state->address] = base::WrapUnique(device_win); |
for (auto& observer : observers_) |
observer.DeviceAdded(this, device_win); |
} else if (changed_devices.find(device_state->address) != |
changed_devices.end()) { |
- DevicesMap::const_iterator iter = devices_.find(device_state->address); |
+ auto iter = devices_.find(device_state->address); |
DCHECK(iter != devices_.end()); |
BluetoothDeviceWin* device_win = |
- static_cast<BluetoothDeviceWin*>(iter->second); |
+ static_cast<BluetoothDeviceWin*>(iter->second.get()); |
if (!device_win->IsEqual(*device_state)) { |
device_win->Update(*device_state); |
for (auto& observer : observers_) |