| Index: fpdfsdk/fpdfview.cpp
|
| diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
|
| index 1c27b6c69b49c6188f5f26e57dc218bff4f3d366..633cbe879e1274a6a16c0af93b1afb034e3d4576 100644
|
| --- a/fpdfsdk/fpdfview.cpp
|
| +++ b/fpdfsdk/fpdfview.cpp
|
| @@ -50,6 +50,9 @@
|
|
|
| namespace {
|
|
|
| +// Also indicates whether library is currently initialized.
|
| +CCodec_ModuleMgr* g_pCodecModule = nullptr;
|
| +
|
| void RenderPageImpl(CPDF_PageRenderContext* pContext,
|
| CPDF_Page* pPage,
|
| const CFX_Matrix& matrix,
|
| @@ -295,18 +298,20 @@ FPDF_BOOL FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy) {
|
| }
|
| }
|
|
|
| -CCodec_ModuleMgr* g_pCodecModule = nullptr;
|
| -
|
| DLLEXPORT void STDCALL FPDF_InitLibrary() {
|
| FPDF_InitLibraryWithConfig(nullptr);
|
| }
|
|
|
| DLLEXPORT void STDCALL
|
| FPDF_InitLibraryWithConfig(const FPDF_LIBRARY_CONFIG* cfg) {
|
| + if (g_pCodecModule)
|
| + return;
|
| +
|
| g_pCodecModule = new CCodec_ModuleMgr();
|
|
|
| CFX_GEModule* pModule = CFX_GEModule::Get();
|
| pModule->Init(cfg ? cfg->m_pUserFontPaths : nullptr, g_pCodecModule);
|
| +
|
| CPDF_ModuleMgr* pModuleMgr = CPDF_ModuleMgr::Get();
|
| pModuleMgr->SetCodecModule(g_pCodecModule);
|
| pModuleMgr->InitPageModule();
|
| @@ -324,6 +329,9 @@ FPDF_InitLibraryWithConfig(const FPDF_LIBRARY_CONFIG* cfg) {
|
| }
|
|
|
| DLLEXPORT void STDCALL FPDF_DestroyLibrary() {
|
| + if (!g_pCodecModule)
|
| + return;
|
| +
|
| #ifdef PDF_ENABLE_XFA
|
| BC_Library_Destory();
|
| FXJSE_Finalize();
|
|
|