summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcaitkp@chromium.org <caitkp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-26 19:15:33 +0000
committercaitkp@chromium.org <caitkp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-26 19:15:33 +0000
commit5e362e4700605d749f57cfe361449a6f067541ff (patch)
tree120f168a2a56cc253d457c76b857e32dd0b49efb
parent6ac748db5fe76c06d1560a040dac8a018b15d2a1 (diff)
downloadchromium_src-5e362e4700605d749f57cfe361449a6f067541ff.zip
chromium_src-5e362e4700605d749f57cfe361449a6f067541ff.tar.gz
chromium_src-5e362e4700605d749f57cfe361449a6f067541ff.tar.bz2
Switch ObserverList::size() to ObserverList::might_have_observers() Pt.1
This is in preparation for making ObserverList::size() protected (see bug for details). BUG=278526 TEST=no change TBR=darin@chromium.org Review URL: https://chromiumcodereview.appspot.com/23190045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219580 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/launcher/launcher_button.cc2
-rw-r--r--ash/system/chromeos/network/network_icon_animation.cc2
-rw-r--r--chrome/browser/chromeos/cros/network_library_impl_base.cc4
-rw-r--r--chrome/browser/download/download_path_reservation_tracker_unittest.cc2
-rw-r--r--chrome/browser/net/pref_proxy_config_tracker_impl.cc2
-rw-r--r--chrome/browser/policy/policy_service_impl.cc2
-rw-r--r--chrome/browser/status_icons/status_icon.cc2
-rw-r--r--chrome/browser/ui/panels/display_settings_provider.cc5
-rw-r--r--chrome/browser/ui/panels/panel_mouse_watcher.cc5
-rw-r--r--chromeos/dbus/shill_client_helper.cc7
-rw-r--r--chromeos/dbus/shill_manager_client_stub.cc2
-rw-r--r--content/browser/loader/resource_dispatcher_host_impl.cc2
-rw-r--r--content/browser/media/webrtc_internals.cc14
-rw-r--r--content/browser/notification_service_impl.cc2
-rw-r--r--media/base/user_input_monitor.cc4
-rw-r--r--net/dns/mdns_client_impl.cc4
-rw-r--r--sync/js/sync_js_controller.cc2
-rw-r--r--ui/compositor/layer_animator_unittest.cc4
18 files changed, 34 insertions, 33 deletions
diff --git a/ash/launcher/launcher_button.cc b/ash/launcher/launcher_button.cc
index 26677ae..7529f6f 100644
--- a/ash/launcher/launcher_button.cc
+++ b/ash/launcher/launcher_button.cc
@@ -67,7 +67,7 @@ class LauncherButtonAnimation : public ui::AnimationDelegate {
void RemoveObserver(Observer* observer) {
observers_.RemoveObserver(observer);
- if (observers_.size() == 0)
+ if (!observers_.might_have_observers())
animation_.Stop();
}
diff --git a/ash/system/chromeos/network/network_icon_animation.cc b/ash/system/chromeos/network/network_icon_animation.cc
index 1169c67..2a6428c 100644
--- a/ash/system/chromeos/network/network_icon_animation.cc
+++ b/ash/system/chromeos/network/network_icon_animation.cc
@@ -45,7 +45,7 @@ void NetworkIconAnimation::AddObserver(AnimationObserver* observer) {
void NetworkIconAnimation::RemoveObserver(AnimationObserver* observer) {
observers_.RemoveObserver(observer);
- if (observers_.size() == 0)
+ if (!observers_.might_have_observers())
animation_.Reset(); // Stops the animation and resets the current value.
}
diff --git a/chrome/browser/chromeos/cros/network_library_impl_base.cc b/chrome/browser/chromeos/cros/network_library_impl_base.cc
index 6d38e02..9b169a5 100644
--- a/chrome/browser/chromeos/cros/network_library_impl_base.cc
+++ b/chrome/browser/chromeos/cros/network_library_impl_base.cc
@@ -127,7 +127,7 @@ void NetworkLibraryImplBase::RemoveNetworkObserver(
network_observers_.find(service_path);
if (map_iter != network_observers_.end()) {
map_iter->second->RemoveObserver(observer);
- if (!map_iter->second->size()) {
+ if (!map_iter->second->might_have_observers()) {
MonitorNetworkStop(service_path);
delete map_iter->second;
network_observers_.erase(map_iter);
@@ -141,7 +141,7 @@ void NetworkLibraryImplBase::RemoveObserverForAllNetworks(
NetworkObserverMap::iterator map_iter = network_observers_.begin();
while (map_iter != network_observers_.end()) {
map_iter->second->RemoveObserver(observer);
- if (!map_iter->second->size()) {
+ if (!map_iter->second->might_have_observers()) {
MonitorNetworkStop(map_iter->first);
delete map_iter->second;
network_observers_.erase(map_iter++);
diff --git a/chrome/browser/download/download_path_reservation_tracker_unittest.cc b/chrome/browser/download/download_path_reservation_tracker_unittest.cc
index 06183a5..5703da3 100644
--- a/chrome/browser/download/download_path_reservation_tracker_unittest.cc
+++ b/chrome/browser/download/download_path_reservation_tracker_unittest.cc
@@ -35,7 +35,7 @@ class FakeDownloadItem : public MockDownloadItem {
}
virtual ~FakeDownloadItem() {
FOR_EACH_OBSERVER(Observer, observers_, OnDownloadDestroyed(this));
- EXPECT_EQ(0u, observers_.size());
+ EXPECT_FALSE(observers_.might_have_observers());
}
virtual void AddObserver(Observer* observer) OVERRIDE {
observers_.AddObserver(observer);
diff --git a/chrome/browser/net/pref_proxy_config_tracker_impl.cc b/chrome/browser/net/pref_proxy_config_tracker_impl.cc
index 5dd3e5d..fbf5e0c 100644
--- a/chrome/browser/net/pref_proxy_config_tracker_impl.cc
+++ b/chrome/browser/net/pref_proxy_config_tracker_impl.cc
@@ -79,7 +79,7 @@ void ChromeProxyConfigService::UpdateProxyConfig(
pref_config_state_ = config_state;
pref_config_ = config;
- if (!observers_.size())
+ if (!observers_.might_have_observers())
return;
// Evaluate the proxy configuration. If GetLatestProxyConfig returns
diff --git a/chrome/browser/policy/policy_service_impl.cc b/chrome/browser/policy/policy_service_impl.cc
index 6af7605..2cfdcbb 100644
--- a/chrome/browser/policy/policy_service_impl.cc
+++ b/chrome/browser/policy/policy_service_impl.cc
@@ -56,7 +56,7 @@ void PolicyServiceImpl::RemoveObserver(PolicyDomain domain,
return;
}
it->second->RemoveObserver(observer);
- if (it->second->size() == 0) {
+ if (!it->second->might_have_observers()) {
delete it->second;
observers_.erase(it);
}
diff --git a/chrome/browser/status_icons/status_icon.cc b/chrome/browser/status_icons/status_icon.cc
index 00270d2..52a36ab 100644
--- a/chrome/browser/status_icons/status_icon.cc
+++ b/chrome/browser/status_icons/status_icon.cc
@@ -22,7 +22,7 @@ void StatusIcon::RemoveObserver(StatusIconObserver* observer) {
}
bool StatusIcon::HasObservers() const {
- return observers_.size() > 0;
+ return observers_.might_have_observers();
}
void StatusIcon::DispatchClickEvent() {
diff --git a/chrome/browser/ui/panels/display_settings_provider.cc b/chrome/browser/ui/panels/display_settings_provider.cc
index adf5ff2..42d76cc 100644
--- a/chrome/browser/ui/panels/display_settings_provider.cc
+++ b/chrome/browser/ui/panels/display_settings_provider.cc
@@ -43,9 +43,10 @@ void DisplaySettingsProvider::RemoveDesktopBarObserver(
void DisplaySettingsProvider::AddFullScreenObserver(
FullScreenObserver* observer) {
is_full_screen_ = IsFullScreen();
+ bool already_started = full_screen_observers_.might_have_observers();
full_screen_observers_.AddObserver(observer);
- if (full_screen_observers_.size() == 1 && NeedsPeriodicFullScreenCheck()) {
+ if (!already_started && NeedsPeriodicFullScreenCheck()) {
full_screen_mode_timer_.Start(FROM_HERE,
base::TimeDelta::FromMilliseconds(kFullScreenModeCheckIntervalMs),
base::Bind(&DisplaySettingsProvider::CheckFullScreenMode,
@@ -58,7 +59,7 @@ void DisplaySettingsProvider::RemoveFullScreenObserver(
FullScreenObserver* observer) {
full_screen_observers_.RemoveObserver(observer);
- if (full_screen_observers_.size() == 0)
+ if (!full_screen_observers_.might_have_observers())
full_screen_mode_timer_.Stop();
}
diff --git a/chrome/browser/ui/panels/panel_mouse_watcher.cc b/chrome/browser/ui/panels/panel_mouse_watcher.cc
index b55ca76..1774658 100644
--- a/chrome/browser/ui/panels/panel_mouse_watcher.cc
+++ b/chrome/browser/ui/panels/panel_mouse_watcher.cc
@@ -14,15 +14,16 @@ PanelMouseWatcher::~PanelMouseWatcher() {
}
void PanelMouseWatcher::AddObserver(PanelMouseWatcherObserver* observer) {
+ bool already_started = observers_.might_have_observers();
observers_.AddObserver(observer);
- if (observers_.size() == 1)
+ if (!already_started)
Start();
}
void PanelMouseWatcher::RemoveObserver(PanelMouseWatcherObserver* observer) {
DCHECK(observers_.HasObserver(observer));
observers_.RemoveObserver(observer);
- if (observers_.size() == 0)
+ if (!observers_.might_have_observers())
Stop();
}
diff --git a/chromeos/dbus/shill_client_helper.cc b/chromeos/dbus/shill_client_helper.cc
index 61dcb4d..a0af3b8 100644
--- a/chromeos/dbus/shill_client_helper.cc
+++ b/chromeos/dbus/shill_client_helper.cc
@@ -180,9 +180,8 @@ ShillClientHelper::ShillClientHelper(dbus::Bus* bus,
}
ShillClientHelper::~ShillClientHelper() {
- LOG_IF(ERROR, observer_list_.size() != 0u)
- << "ShillClientHelper destroyed with active observers: "
- << observer_list_.size();
+ LOG_IF(ERROR, observer_list_.might_have_observers())
+ << "ShillClientHelper destroyed with active observers";
}
void ShillClientHelper::AddPropertyChangedObserver(
@@ -203,7 +202,7 @@ void ShillClientHelper::RemovePropertyChangedObserver(
void ShillClientHelper::MonitorPropertyChanged(
const std::string& interface_name) {
- if (observer_list_.size() > 0) {
+ if (observer_list_.might_have_observers()) {
// Effectively monitor the PropertyChanged now.
MonitorPropertyChangedInternal(interface_name);
} else {
diff --git a/chromeos/dbus/shill_manager_client_stub.cc b/chromeos/dbus/shill_manager_client_stub.cc
index 640949a..b601eb2 100644
--- a/chromeos/dbus/shill_manager_client_stub.cc
+++ b/chromeos/dbus/shill_manager_client_stub.cc
@@ -523,7 +523,7 @@ void ShillManagerClientStub::CallNotifyObserversPropertyChanged(
int delay_ms) {
// Avoid unnecessary delayed task if we have no observers (e.g. during
// initial setup).
- if (observer_list_.size() == 0)
+ if (!observer_list_.might_have_observers())
return;
if (!CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kEnableStubInteractive)) {
diff --git a/content/browser/loader/resource_dispatcher_host_impl.cc b/content/browser/loader/resource_dispatcher_host_impl.cc
index d4f6e53..2a4ad9a 100644
--- a/content/browser/loader/resource_dispatcher_host_impl.cc
+++ b/content/browser/loader/resource_dispatcher_host_impl.cc
@@ -1813,7 +1813,7 @@ void ResourceDispatcherHostImpl::UnregisterResourceMessageDelegate(
DelegateMap::iterator it = delegate_map_.find(id);
DCHECK(it->second->HasObserver(delegate));
it->second->RemoveObserver(delegate);
- if (it->second->size() == 0) {
+ if (!it->second->might_have_observers()) {
delete it->second;
delegate_map_.erase(it);
}
diff --git a/content/browser/media/webrtc_internals.cc b/content/browser/media/webrtc_internals.cc
index f8bcdc3..e94447a 100644
--- a/content/browser/media/webrtc_internals.cc
+++ b/content/browser/media/webrtc_internals.cc
@@ -65,7 +65,7 @@ void WebRTCInternals::OnAddPeerConnection(int render_process_id,
dict->SetString("url", url);
peer_connection_data_.Append(dict);
- if (observers_.size() > 0)
+ if (observers_.might_have_observers())
SendUpdate("addPeerConnection", dict);
}
@@ -85,7 +85,7 @@ void WebRTCInternals::OnRemovePeerConnection(ProcessId pid, int lid) {
peer_connection_data_.Remove(i, NULL);
- if (observers_.size() > 0) {
+ if (observers_.might_have_observers()) {
base::DictionaryValue id;
id.SetInteger("pid", static_cast<int>(pid));
id.SetInteger("lid", lid);
@@ -123,7 +123,7 @@ void WebRTCInternals::OnUpdatePeerConnection(
log_entry->SetString("value", value);
log->Append(log_entry);
- if (observers_.size() > 0) {
+ if (observers_.might_have_observers()) {
base::DictionaryValue update;
update.SetInteger("pid", static_cast<int>(pid));
update.SetInteger("lid", lid);
@@ -138,7 +138,7 @@ void WebRTCInternals::OnUpdatePeerConnection(
void WebRTCInternals::OnAddStats(base::ProcessId pid, int lid,
const base::ListValue& value) {
- if (observers_.size() == 0)
+ if (!observers_.might_have_observers())
return;
base::DictionaryValue dict;
@@ -165,7 +165,7 @@ void WebRTCInternals::RemoveObserver(WebRTCInternalsUIObserver *observer) {
}
void WebRTCInternals::SendAllUpdates() {
- if (observers_.size() > 0)
+ if (observers_.might_have_observers())
SendUpdate("updateAllPeerConnections", &peer_connection_data_);
}
@@ -184,7 +184,7 @@ void WebRTCInternals::StopRtpRecording() {
}
void WebRTCInternals::SendUpdate(const string& command, base::Value* value) {
- DCHECK_GT(observers_.size(), (size_t)0);
+ DCHECK(observers_.might_have_observers());
FOR_EACH_OBSERVER(WebRTCInternalsUIObserver,
observers_,
@@ -216,7 +216,7 @@ void WebRTCInternals::OnRendererExit(int render_process_id) {
record->GetInteger("rid", &this_rid);
if (this_rid == render_process_id) {
- if (observers_.size() > 0) {
+ if (observers_.might_have_observers()) {
int lid = 0, pid = 0;
record->GetInteger("lid", &lid);
record->GetInteger("pid", &pid);
diff --git a/content/browser/notification_service_impl.cc b/content/browser/notification_service_impl.cc
index 4913288..27de857 100644
--- a/content/browser/notification_service_impl.cc
+++ b/content/browser/notification_service_impl.cc
@@ -83,7 +83,7 @@ void NotificationServiceImpl::RemoveObserver(NotificationObserver* observer,
observers_[type][source.map_key()];
if (observer_list) {
observer_list->RemoveObserver(observer);
- if (!observer_list->size()) {
+ if (!observer_list->might_have_observers()) {
observers_[type].erase(source.map_key());
delete observer_list;
}
diff --git a/media/base/user_input_monitor.cc b/media/base/user_input_monitor.cc
index 18b4c80..8a1f1da 100644
--- a/media/base/user_input_monitor.cc
+++ b/media/base/user_input_monitor.cc
@@ -33,7 +33,7 @@ void UserInputMonitor::AddMouseListener(MouseEventListener* listener) {
void UserInputMonitor::RemoveMouseListener(MouseEventListener* listener) {
base::AutoLock auto_lock(lock_);
mouse_listeners_.RemoveObserver(listener);
- if (mouse_listeners_.size() == 0) {
+ if (!mouse_listeners_.might_have_observers()) {
StopMouseMonitoring();
monitoring_mouse_ = false;
DVLOG(2) << "Stopped mouse monitoring.";
@@ -51,7 +51,7 @@ void UserInputMonitor::AddKeyStrokeListener(KeyStrokeListener* listener) {
void UserInputMonitor::RemoveKeyStrokeListener(KeyStrokeListener* listener) {
base::AutoLock auto_lock(lock_);
key_stroke_listeners_.RemoveObserver(listener);
- if (key_stroke_listeners_.size() == 0) {
+ if (!key_stroke_listeners_.might_have_observers()) {
StopKeyboardMonitoring();
monitoring_keyboard_ = false;
DVLOG(2) << "Stopped keyboard monitoring.";
diff --git a/net/dns/mdns_client_impl.cc b/net/dns/mdns_client_impl.cc
index 8f79edf..a90ac64 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);
}
diff --git a/sync/js/sync_js_controller.cc b/sync/js/sync_js_controller.cc
index 49f3cc7..4d3148f 100644
--- a/sync/js/sync_js_controller.cc
+++ b/sync/js/sync_js_controller.cc
@@ -73,7 +73,7 @@ void SyncJsController::UpdateBackendEventHandler() {
// event handler we pass to it if we don't have any event
// handlers.
WeakHandle<JsEventHandler> backend_event_handler =
- (js_event_handlers_.size() > 0) ?
+ js_event_handlers_.might_have_observers() ?
MakeWeakHandle(AsWeakPtr()) : WeakHandle<SyncJsController>();
js_backend_.Call(FROM_HERE, &JsBackend::SetJsEventHandler,
backend_event_handler);
diff --git a/ui/compositor/layer_animator_unittest.cc b/ui/compositor/layer_animator_unittest.cc
index 8b4d792..5cae43c 100644
--- a/ui/compositor/layer_animator_unittest.cc
+++ b/ui/compositor/layer_animator_unittest.cc
@@ -1764,13 +1764,13 @@ TEST(LayerAnimatorTest, ObserverReleasedBeforeAnimationSequenceEnds) {
animator->StartAnimation(sequence);
// |observer| should be attached to |sequence|.
- EXPECT_EQ(static_cast<size_t>(1), sequence->observers_.size());
+ EXPECT_TRUE(sequence->observers_.might_have_observers());
// Now, release |observer|
observer.reset();
// And |sequence| should no longer be attached to |observer|.
- EXPECT_EQ(static_cast<size_t>(0), sequence->observers_.size());
+ EXPECT_FALSE(sequence->observers_.might_have_observers());
}
TEST(LayerAnimatorTest, ObserverAttachedAfterAnimationStarted) {