| Index: fpdfsdk/fpdfxfa/cpdfxfa_document.cpp | 
| diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp | 
| index e49cfde8c4892b6a423b94fd27570a86ebe54401..121d0604534a418a2829423a0d01f75ccab94b8e 100644 | 
| --- a/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp | 
| +++ b/fpdfsdk/fpdfxfa/cpdfxfa_document.cpp | 
| @@ -33,6 +33,7 @@ CPDFXFA_Document::CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc, | 
| CPDFXFA_App* pProvider) | 
| : m_iDocType(DOCTYPE_PDF), | 
| m_pPDFDoc(std::move(pPDFDoc)), | 
| +      m_pSDKDoc(nullptr), | 
| m_pXFADocView(nullptr), | 
| m_pApp(pProvider), | 
| m_nLoadStatus(FXFA_LOADSTATUS_PRELOAD), | 
| @@ -42,6 +43,11 @@ CPDFXFA_Document::CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc, | 
| CPDFXFA_Document::~CPDFXFA_Document() { | 
| m_nLoadStatus = FXFA_LOADSTATUS_CLOSING; | 
|  | 
| +  if (m_pSDKDoc) { | 
| +    m_pSDKDoc->ClearAllFocusedAnnots(); | 
| +    m_pSDKDoc = nullptr; | 
| +  } | 
| + | 
| if (m_pXFADoc) { | 
| CXFA_FFApp* pApp = m_pApp->GetXFAApp(); | 
| if (pApp) { | 
| @@ -191,10 +197,6 @@ void CPDFXFA_Document::RemovePage(CPDFXFA_Page* page) { | 
| m_XFAPageList.SetAt(page->GetPageIndex(), nullptr); | 
| } | 
|  | 
| -void CPDFXFA_Document::SetSDKDoc(std::unique_ptr<CPDFSDK_Document> pSDKDoc) { | 
| -  m_pSDKDoc.reset(pSDKDoc.release()); | 
| -} | 
| - | 
| void CPDFXFA_Document::ClearChangeMark() { | 
| if (m_pSDKDoc) | 
| m_pSDKDoc->ClearChangeMark(); | 
|  |