| Index: core/fxcrt/include/cfx_observable.h
|
| diff --git a/core/fxcrt/include/cfx_observable.h b/core/fxcrt/include/cfx_observable.h
|
| index b669e0d3d5b3b529dbd40c5ee9ddf2f01f5414f1..99a995128492f2f52f29db73196b7bcf8cb73fa0 100644
|
| --- a/core/fxcrt/include/cfx_observable.h
|
| +++ b/core/fxcrt/include/cfx_observable.h
|
| @@ -45,10 +45,7 @@ class CFX_Observable {
|
|
|
| CFX_Observable() {}
|
| CFX_Observable(const CFX_Observable& that) = delete;
|
| - ~CFX_Observable() {
|
| - for (auto* pObserver : m_Observers)
|
| - pObserver->OnDestroy();
|
| - }
|
| + ~CFX_Observable() { NotifyObservers(); }
|
| void AddObserver(Observer* pObserver) {
|
| ASSERT(!pdfium::ContainsKey(m_Observers, pObserver));
|
| m_Observers.insert(pObserver);
|
| @@ -57,6 +54,11 @@ class CFX_Observable {
|
| ASSERT(pdfium::ContainsKey(m_Observers, pObserver));
|
| m_Observers.erase(pObserver);
|
| }
|
| + void NotifyObservers() {
|
| + for (auto* pObserver : m_Observers)
|
| + pObserver->OnDestroy();
|
| + m_Observers.clear();
|
| + }
|
| CFX_Observable& operator=(const CFX_Observable& that) = delete;
|
|
|
| private:
|
|
|