Index: chromeos/network/network_state_handler.cc |
diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc |
index 09c70fccd0993bad0c30581971115f9803fb57d3..33867a59ffe3cdb80f0b6b5ebf132d949bda1020 100644 |
--- a/chromeos/network/network_state_handler.cc |
+++ b/chromeos/network/network_state_handler.cc |
@@ -564,19 +564,30 @@ bool NetworkStateHandler::UpdateTetherNetworkProperties( |
} |
void NetworkStateHandler::RemoveTetherNetworkState(const std::string& guid) { |
- for (auto iter = tether_network_list_.begin(); |
- iter != tether_network_list_.end(); ++iter) { |
+ auto iter = DisassociateTetherNetworkStateWithWifiNetwork(guid); |
+ if (iter != tether_network_list_.end()) { |
+ tether_network_list_.erase(iter); |
+ NotifyNetworkListChanged(); |
+ } |
+ return; |
+} |
+ |
+NetworkStateHandler::ManagedStateList::iterator |
+NetworkStateHandler::DisassociateTetherNetworkStateWithWifiNetwork( |
+ const std::string& guid) { |
+ ManagedStateList::iterator iter = tether_network_list_.begin(); |
Kyle Horimoto
2017/05/01 17:09:26
Use this:
for (const auto& tether_network : tethe
lesliewatkins
2017/05/03 01:23:23
I just reverted back to the old RemoveTetherNetwor
|
+ for (; iter != tether_network_list_.end(); ++iter) { |
if (iter->get()->AsNetworkState()->guid() == guid) { |
- NetworkState* wifi_network = GetModifiableNetworkStateFromGuid( |
- iter->get()->AsNetworkState()->tether_guid()); |
+ NetworkState* tether_network = iter->get()->AsNetworkState(); |
+ NetworkState* wifi_network = |
+ GetModifiableNetworkStateFromGuid(tether_network->tether_guid()); |
if (wifi_network) |
wifi_network->set_tether_guid(std::string()); |
- |
- tether_network_list_.erase(iter); |
- NotifyNetworkListChanged(); |
- return; |
+ tether_network->set_tether_guid(std::string()); |
+ return iter; |
} |
} |
+ return iter; |
} |
bool NetworkStateHandler::AssociateTetherNetworkStateWithWifiNetwork( |