| Index: fpdfsdk/fpdfview.cpp
 | 
| diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
 | 
| index cb0cf5917c19ab0e32de404f5c88e2e2464ca359..3ab81fe1124321bd4f4e355aad20bdc1310eab5a 100644
 | 
| --- a/fpdfsdk/fpdfview.cpp
 | 
| +++ b/fpdfsdk/fpdfview.cpp
 | 
| @@ -42,7 +42,6 @@
 | 
|  #include "fpdfsdk/fpdfxfa/cpdfxfa_page.h"
 | 
|  #include "fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.h"
 | 
|  #include "public/fpdf_formfill.h"
 | 
| -#include "xfa/fxbarcode/BC_Library.h"
 | 
|  #endif  // PDF_ENABLE_XFA
 | 
|  
 | 
|  #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
 | 
| @@ -71,8 +70,8 @@
 | 
|  
 | 
|  FPDF_DOCUMENT FPDFDocumentFromCPDFDocument(CPDF_Document* doc) {
 | 
|  #ifdef PDF_ENABLE_XFA
 | 
| -  return doc ? FPDFDocumentFromUnderlying(
 | 
| -                   new CPDFXFA_Document(pdfium::WrapUnique(doc)))
 | 
| +  return doc ? FPDFDocumentFromUnderlying(new CPDFXFA_Document(
 | 
| +                   pdfium::WrapUnique(doc), CPDFXFA_App::GetInstance()))
 | 
|               : nullptr;
 | 
|  #else   // PDF_ENABLE_XFA
 | 
|    return FPDFDocumentFromUnderlying(doc);
 | 
| @@ -286,19 +285,19 @@
 | 
|    pModuleMgr->LoadEmbeddedKorea1CMaps();
 | 
|  
 | 
|  #ifdef PDF_ENABLE_XFA
 | 
| -  FXJSE_Initialize();
 | 
| -  BC_Library_Init();
 | 
| -#endif  // PDF_ENABLE_XFA
 | 
| +  CPDFXFA_App::GetInstance()->Initialize(
 | 
| +      (cfg && cfg->version >= 2) ? static_cast<v8::Isolate*>(cfg->m_pIsolate)
 | 
| +                                 : nullptr);
 | 
| +#endif  // PDF_ENABLE_XFA
 | 
| +
 | 
|    if (cfg && cfg->version >= 2)
 | 
|      IJS_Runtime::Initialize(cfg->m_v8EmbedderSlot, cfg->m_pIsolate);
 | 
|  }
 | 
|  
 | 
|  DLLEXPORT void STDCALL FPDF_DestroyLibrary() {
 | 
|  #ifdef PDF_ENABLE_XFA
 | 
| -  BC_Library_Destory();
 | 
| -  FXJSE_Finalize();
 | 
| -#endif  // PDF_ENABLE_XFA
 | 
| -
 | 
| +  CPDFXFA_App::ReleaseInstance();
 | 
| +#endif  // PDF_ENABLE_XFA
 | 
|    CPDF_ModuleMgr::Destroy();
 | 
|    CFX_GEModule::Destroy();
 | 
|  
 | 
| @@ -378,7 +377,11 @@
 | 
|      ProcessParseError(error);
 | 
|      return nullptr;
 | 
|    }
 | 
| -  return FPDFDocumentFromCPDFDocument(pDocument.release());
 | 
| +#ifdef PDF_ENABLE_XFA
 | 
| +  return new CPDFXFA_Document(std::move(pDocument), CPDFXFA_App::GetInstance());
 | 
| +#else   // PDF_ENABLE_XFA
 | 
| +  return pDocument.release();
 | 
| +#endif  // PDF_ENABLE_XFA
 | 
|  }
 | 
|  
 | 
|  #ifdef PDF_ENABLE_XFA
 | 
| 
 |