| Index: ui/base/window_tracker_template.h
|
| diff --git a/ui/base/window_tracker_template.h b/ui/base/window_tracker_template.h
|
| index 5bcaccb40bd4f325cd5814bfaa69fc0b2fc11c73..e91bdac8077b29cd53cc9aca13dbf753b25e3201 100644
|
| --- a/ui/base/window_tracker_template.h
|
| +++ b/ui/base/window_tracker_template.h
|
| @@ -30,10 +30,7 @@ class WindowTrackerTemplate : public TObserver {
|
| Add(window);
|
| }
|
| WindowTrackerTemplate() {}
|
| - ~WindowTrackerTemplate() override {
|
| - for (T* window : windows_)
|
| - window->RemoveObserver(this);
|
| - }
|
| + ~WindowTrackerTemplate() override { RemoveAll(); }
|
|
|
| // Returns the set of windows being observed.
|
| const WindowList& windows() const { return windows_; }
|
| @@ -47,6 +44,12 @@ class WindowTrackerTemplate : public TObserver {
|
| windows_.push_back(window);
|
| }
|
|
|
| + void RemoveAll() {
|
| + for (T* window : windows_)
|
| + window->RemoveObserver(this);
|
| + windows_.clear();
|
| + }
|
| +
|
| // Removes |window| from the set of windows being tracked.
|
| void Remove(T* window) {
|
| auto iter = std::find(windows_.begin(), windows_.end(), window);
|
|
|