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 |