Index: fpdfsdk/cpdfsdk_baannot.cpp |
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp |
index a2fd7c79bbae37d6f04b45f16ada3b6ab09a06cb..f5aa4e8fc72b4ecee419fb845c938733ef64ebcd 100644 |
--- a/fpdfsdk/cpdfsdk_baannot.cpp |
+++ b/fpdfsdk/cpdfsdk_baannot.cpp |
@@ -13,6 +13,22 @@ |
#include "fpdfsdk/include/cpdfsdk_datetime.h" |
#include "fpdfsdk/include/fsdk_mgr.h" |
+CPDFSDK_BAAnnot::Observer::Observer(CPDFSDK_BAAnnot** pWatchedPtr) |
+ : m_pWatchedPtr(pWatchedPtr) { |
+ (*m_pWatchedPtr)->AddObserver(this); |
+} |
+ |
+CPDFSDK_BAAnnot::Observer::~Observer() { |
+ if (m_pWatchedPtr) |
+ (*m_pWatchedPtr)->RemoveObserver(this); |
+} |
+ |
+void CPDFSDK_BAAnnot::Observer::OnAnnotDestroyed() { |
+ ASSERT(m_pWatchedPtr); |
+ *m_pWatchedPtr = nullptr; |
+ m_pWatchedPtr = nullptr; |
+} |
+ |
CPDFSDK_BAAnnot::CPDFSDK_BAAnnot(CPDF_Annot* pAnnot, |
CPDFSDK_PageView* pPageView) |
: CPDFSDK_Annot(pPageView), m_pAnnot(pAnnot) {} |