Chromium Code Reviews| Index: base/scoped_observer.h |
| =================================================================== |
| --- base/scoped_observer.h (revision 259942) |
| +++ base/scoped_observer.h (working copy) |
| @@ -19,8 +19,7 @@ |
| explicit ScopedObserver(Observer* observer) : observer_(observer) {} |
| ~ScopedObserver() { |
| - for (size_t i = 0; i < sources_.size(); ++i) |
| - sources_[i]->RemoveObserver(observer_); |
| + RemoveAll(); |
| } |
| // Adds the object passed to the constructor as an observer on |source|. |
| @@ -35,12 +34,14 @@ |
| source->RemoveObserver(observer_); |
| } |
| + void RemoveAll() { |
| + for (size_t i = 0; i < sources_.size(); ++i) |
| + sources_[i]->RemoveObserver(observer_); |
|
Nico
2014/03/28 03:34:12
and you don't think it's better to do a sources_.c
Lei Zhang
2014/03/28 03:40:55
Good catch. Thanks.
|
| + } |
| + |
| bool IsObserving(Source* source) const { |
| - for (size_t i = 0; i < sources_.size(); ++i) { |
| - if (sources_[i] == source) |
| - return true; |
| - } |
| - return false; |
| + return std::find(sources_.begin(), sources_.end(), source) != |
| + sources_.end(); |
| } |
| private: |