Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Unified Diff: core/fxcrt/include/cfx_observable.h

Issue 2322743002: Replace CJS_Runtime::Observer with CFX_Runtime<CJS_Runtime>::Observer (Closed)
Patch Set: Order matters Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | fpdfsdk/javascript/app.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:
« no previous file with comments | « no previous file | fpdfsdk/javascript/app.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698