Index: base/scoped_observer.h |
diff --git a/base/scoped_observer.h b/base/scoped_observer.h |
index d273e338cdb13cc10b1a4bb006674695dc4b72f6..ceada319b99017c41838ea99914af2174cb8d189 100644 |
--- a/base/scoped_observer.h |
+++ b/base/scoped_observer.h |
@@ -19,6 +19,11 @@ class ScopedObserver { |
public: |
explicit ScopedObserver(Observer* observer) : observer_(observer) {} |
+ // Creates with an initial |source|. |
+ ScopedObserver(Observer* observer, Source* source) : observer_(observer) { |
+ Add(source); |
+ } |
+ |
~ScopedObserver() { |
for (size_t i = 0; i < sources_.size(); ++i) |
sources_[i]->RemoveObserver(observer_); |
@@ -30,7 +35,7 @@ class ScopedObserver { |
source->AddObserver(observer_); |
} |
- // Removse the object passed to the constructor as an observer from |source|. |
+ // Removes the object passed to the constructor as an observer from |source|. |
void Remove(Source* source) { |
sources_.erase(std::find(sources_.begin(), sources_.end(), source)); |
source->RemoveObserver(observer_); |