Index: net/dns/mdns_client_impl.cc |
diff --git a/net/dns/mdns_client_impl.cc b/net/dns/mdns_client_impl.cc |
index 8f79edf4cdf8808e810e91626e56adeba036dc38..a90ac64505a22081878a276297aaca9ff5490c55 100644 |
--- a/net/dns/mdns_client_impl.cc |
+++ b/net/dns/mdns_client_impl.cc |
@@ -378,7 +378,7 @@ void MDnsClientImpl::Core::RemoveListener(MDnsListenerImpl* listener) { |
observer_list_iterator->second->RemoveObserver(listener); |
// Remove the observer list from the map if it is empty |
- if (observer_list_iterator->second->size() == 0) { |
+ if (!observer_list_iterator->second->might_have_observers()) { |
// Schedule the actual removal for later in case the listener removal |
// happens while iterating over the observer list. |
base::MessageLoop::current()->PostTask( |
@@ -389,7 +389,7 @@ void MDnsClientImpl::Core::RemoveListener(MDnsListenerImpl* listener) { |
void MDnsClientImpl::Core::CleanupObserverList(const ListenerKey& key) { |
ListenerMap::iterator found = listeners_.find(key); |
- if (found != listeners_.end() && found->second->size() == 0) { |
+ if (found != listeners_.end() && !found->second->might_have_observers()) { |
delete found->second; |
listeners_.erase(found); |
} |