| Index: webrtc/base/analytics/percentile_filter.h
 | 
| diff --git a/webrtc/base/analytics/percentile_filter.h b/webrtc/base/analytics/percentile_filter.h
 | 
| index b3c8f8d1775f8df42b22b9a42d802ce454b9c1cb..d6b36aeb51a9ccafe5e18f267405eb96db969fac 100644
 | 
| --- a/webrtc/base/analytics/percentile_filter.h
 | 
| +++ b/webrtc/base/analytics/percentile_filter.h
 | 
| @@ -33,13 +33,18 @@ class PercentileFilter {
 | 
|    // the size of the container.
 | 
|    void Insert(const T& value);
 | 
|  
 | 
| -  // Remove one observation. The complexity of this operation is logarithmic in
 | 
| -  // the size of the container.
 | 
| -  void Erase(const T& value);
 | 
| +  // Remove one observation or return false if |value| doesn't exist in the
 | 
| +  // container. The complexity of this operation is logarithmic in the size of
 | 
| +  // the container.
 | 
| +  bool Erase(const T& value);
 | 
|  
 | 
|    // Get the percentile value. The complexity of this operation is constant.
 | 
|    T GetPercentileValue() const;
 | 
|  
 | 
| +  // Remove all observations from the container and reset the state to that of
 | 
| +  // a newly contructed object.
 | 
| +  void Clear();
 | 
| +
 | 
|   private:
 | 
|    // Update iterator and index to point at target percentile value.
 | 
|    void UpdatePercentileIterator();
 | 
| @@ -76,11 +81,11 @@ void PercentileFilter<T>::Insert(const T& value) {
 | 
|  }
 | 
|  
 | 
|  template <typename T>
 | 
| -void PercentileFilter<T>::Erase(const T& value) {
 | 
| +bool PercentileFilter<T>::Erase(const T& value) {
 | 
|    typename std::multiset<T>::const_iterator it = set_.lower_bound(value);
 | 
|    // Ignore erase operation if the element is not present in the current set.
 | 
|    if (it == set_.end() || *it != value)
 | 
| -    return;
 | 
| +    return false;
 | 
|    if (it == percentile_it_) {
 | 
|      // If same iterator, update to the following element. Index is not
 | 
|      // affected.
 | 
| @@ -92,6 +97,7 @@ void PercentileFilter<T>::Erase(const T& value) {
 | 
|        --percentile_index_;
 | 
|    }
 | 
|    UpdatePercentileIterator();
 | 
| +  return true;
 | 
|  }
 | 
|  
 | 
|  template <typename T>
 | 
| @@ -108,6 +114,13 @@ T PercentileFilter<T>::GetPercentileValue() const {
 | 
|    return set_.empty() ? 0 : *percentile_it_;
 | 
|  }
 | 
|  
 | 
| +template <typename T>
 | 
| +void PercentileFilter<T>::Clear() {
 | 
| +  set_.clear();
 | 
| +  percentile_index_ = 0;
 | 
| +  percentile_it_ = set_.begin();
 | 
| +}
 | 
| +
 | 
|  }  // namespace webrtc
 | 
|  
 | 
|  #endif  // WEBRTC_BASE_ANALYTICS_PERCENTILE_FILTER_H_
 | 
| 
 |