| Index: base/observer_list.h
 | 
| diff --git a/base/observer_list.h b/base/observer_list.h
 | 
| index ef45269ed6e60ea3b4a63342ca474318c6521906..f7b92679e9e37af4d3c6d6492da93aed9789cd4e 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__
 | 
| 
 |