| Index: chrome/browser/local_discovery/service_discovery_device_lister.cc
|
| diff --git a/chrome/browser/local_discovery/service_discovery_device_lister.cc b/chrome/browser/local_discovery/service_discovery_device_lister.cc
|
| index 2126d7780a19b89f6d5b26a8abe3d6afc60953bb..7115ab6e16d01600cf9549fd6dab98d8bc7f221f 100644
|
| --- a/chrome/browser/local_discovery/service_discovery_device_lister.cc
|
| +++ b/chrome/browser/local_discovery/service_discovery_device_lister.cc
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/message_loop/message_loop.h"
|
| +#include "base/stl_util.h"
|
| #include "build/build_config.h"
|
|
|
| namespace local_discovery {
|
| @@ -56,29 +57,26 @@ void ServiceDiscoveryDeviceLister::OnServiceUpdated(
|
| return;
|
| }
|
|
|
| - if (update != ServiceWatcher::UPDATE_REMOVED) {
|
| - bool added = (update == ServiceWatcher::UPDATE_ADDED);
|
| - std::pair<ServiceResolverMap::iterator, bool> insert_result =
|
| - resolvers_.insert(make_pair(service_name,
|
| - linked_ptr<ServiceResolver>(NULL)));
|
| -
|
| - // If there is already a resolver working on this service, don't add one.
|
| - if (insert_result.second) {
|
| - VLOG(1) << "Adding resolver for service_name: " << service_name;
|
| - std::unique_ptr<ServiceResolver> resolver =
|
| - service_discovery_client_->CreateServiceResolver(
|
| - service_name,
|
| - base::Bind(&ServiceDiscoveryDeviceLister::OnResolveComplete,
|
| - weak_factory_.GetWeakPtr(), added, service_name));
|
| -
|
| - insert_result.first->second.reset(resolver.release());
|
| - insert_result.first->second->StartResolving();
|
| - } else {
|
| - VLOG(1) << "Resolver already exists, service_name: " << service_name;
|
| - }
|
| - } else {
|
| + if (update == ServiceWatcher::UPDATE_REMOVED) {
|
| delegate_->OnDeviceRemoved(service_name);
|
| + return;
|
| + }
|
| +
|
| + // If there is already a resolver working on this service, don't add one.
|
| + if (ContainsKey(resolvers_, service_name)) {
|
| + VLOG(1) << "Resolver already exists, service_name: " << service_name;
|
| + return;
|
| }
|
| +
|
| + VLOG(1) << "Adding resolver for service_name: " << service_name;
|
| + bool added = (update == ServiceWatcher::UPDATE_ADDED);
|
| + std::unique_ptr<ServiceResolver> resolver =
|
| + service_discovery_client_->CreateServiceResolver(
|
| + service_name,
|
| + base::Bind(&ServiceDiscoveryDeviceLister::OnResolveComplete,
|
| + weak_factory_.GetWeakPtr(), added, service_name));
|
| + resolver->StartResolving();
|
| + resolvers_[service_name] = std::move(resolver);
|
| }
|
|
|
| // TODO(noamsml): Update ServiceDiscoveryClient interface to match this.
|
|
|