diff options
author | danakj <danakj@chromium.org> | 2015-03-09 10:45:39 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-09 17:46:34 +0000 |
commit | 4ef352de3f24142d38b7d11fe3f9f637b43ee834 (patch) | |
tree | 7f6986711ebbd45505f1c5f8b4e4e2f383f4ff69 /base/observer_list.h | |
parent | d415c687891e096b3e2d10e656842d59a86a51ea (diff) | |
download | chromium_src-4ef352de3f24142d38b7d11fe3f9f637b43ee834.zip chromium_src-4ef352de3f24142d38b7d11fe3f9f637b43ee834.tar.gz chromium_src-4ef352de3f24142d38b7d11fe3f9f637b43ee834.tar.bz2 |
base: Stop passing a non-const ref to ObserverListBase::Iterator.
Pass a pointer instead, as per the style guide. Also makes the
constructor explicit (all callsites already are explicit).
BUG=464816
TBR=blundell@chromium.org,agl,dmichael,garykac
Review URL: https://codereview.chromium.org/982413002
Cr-Commit-Position: refs/heads/master@{#319674}
Diffstat (limited to 'base/observer_list.h')
-rw-r--r-- | base/observer_list.h | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/base/observer_list.h b/base/observer_list.h index ef45269..f7b9267 100644 --- a/base/observer_list.h +++ b/base/observer_list.h @@ -79,7 +79,7 @@ class ObserverListBase // also the FOR_EACH_OBSERVER macro defined below. class Iterator { public: - Iterator(ObserverListBase<ObserverType>& list); + explicit Iterator(ObserverListBase<ObserverType>* list); ~Iterator(); ObserverType* GetNext(); @@ -126,12 +126,11 @@ class ObserverListBase template <class ObserverType> ObserverListBase<ObserverType>::Iterator::Iterator( - ObserverListBase<ObserverType>& list) - : list_(list.AsWeakPtr()), + ObserverListBase<ObserverType>* list) + : list_(list->AsWeakPtr()), index_(0), - max_index_(list.type_ == NOTIFY_ALL ? - std::numeric_limits<size_t>::max() : - list.observers_.size()) { + max_index_(list->type_ == NOTIFY_ALL ? std::numeric_limits<size_t>::max() + : list->observers_.size()) { ++list_->notify_depth_; } @@ -228,15 +227,15 @@ class ObserverList : public ObserverListBase<ObserverType> { } }; -#define FOR_EACH_OBSERVER(ObserverType, observer_list, func) \ - do { \ - if ((observer_list).might_have_observers()) { \ - ObserverListBase<ObserverType>::Iterator \ - it_inside_observer_macro(observer_list); \ - ObserverType* obs; \ - while ((obs = it_inside_observer_macro.GetNext()) != NULL) \ - obs->func; \ - } \ +#define FOR_EACH_OBSERVER(ObserverType, observer_list, func) \ + do { \ + if ((observer_list).might_have_observers()) { \ + ObserverListBase<ObserverType>::Iterator it_inside_observer_macro( \ + &observer_list); \ + ObserverType* obs; \ + while ((obs = it_inside_observer_macro.GetNext()) != NULL) \ + obs->func; \ + } \ } while (0) #endif // BASE_OBSERVER_LIST_H__ |