Index: core/fpdfdoc/cpdf_annot.cpp |
diff --git a/core/fpdfdoc/cpdf_annot.cpp b/core/fpdfdoc/cpdf_annot.cpp |
index 6525ff620cc282ffb24e54d50fc31091395d7722..942d334a2d87c9b206131c9e52e6719050b2d29c 100644 |
--- a/core/fpdfdoc/cpdf_annot.cpp |
+++ b/core/fpdfdoc/cpdf_annot.cpp |
@@ -18,8 +18,11 @@ |
#include "core/fxge/include/cfx_pathdata.h" |
#include "core/fxge/include/cfx_renderdevice.h" |
-CPDF_Annot::CPDF_Annot(CPDF_Dictionary* pDict, CPDF_Document* pDocument) |
- : m_pAnnotDict(pDict), |
+CPDF_Annot::CPDF_Annot(CPDF_Dictionary* pDict, |
+ CPDF_Document* pDocument, |
+ bool bToOwnDict) |
+ : m_bOwnedAnnotDict(bToOwnDict), |
+ m_pAnnotDict(pDict), |
m_pDocument(pDocument), |
m_bOpenState(false), |
m_pPopupAnnot(nullptr) { |
@@ -28,6 +31,8 @@ CPDF_Annot::CPDF_Annot(CPDF_Dictionary* pDict, CPDF_Document* pDocument) |
} |
CPDF_Annot::~CPDF_Annot() { |
+ if (m_bOwnedAnnotDict) |
+ m_pAnnotDict->Release(); |
ClearCachedAP(); |
} |