Fix CFX_GEModule destruction order.
The platform must outlive the font mgr (which owns the FT library)
which must outlive the font cache. This will enable faces to be
properly ref-counted in a subsequent patch, since the font cache
won't keep faces alive beyond the lifespan of the library.
Change-Id: I448dea06cf38cb62c604c9a71ff89404823f9adc
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/54850
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxge/cfx_gemodule.cpp b/core/fxge/cfx_gemodule.cpp
index ea6b4ac..5d268bf 100644
--- a/core/fxge/cfx_gemodule.cpp
+++ b/core/fxge/cfx_gemodule.cpp
@@ -18,9 +18,9 @@
} // namespace
CFX_GEModule::CFX_GEModule(const char** pUserFontPaths)
- : m_pFontCache(pdfium::MakeUnique<CFX_FontCache>()),
+ : m_pPlatform(PlatformIface::Create()),
m_pFontMgr(pdfium::MakeUnique<CFX_FontMgr>()),
- m_pPlatform(PlatformIface::Create()),
+ m_pFontCache(pdfium::MakeUnique<CFX_FontCache>()),
m_pUserFontPaths(pUserFontPaths) {}
CFX_GEModule::~CFX_GEModule() = default;
diff --git a/core/fxge/cfx_gemodule.h b/core/fxge/cfx_gemodule.h
index 59eddb7..47e2667 100644
--- a/core/fxge/cfx_gemodule.h
+++ b/core/fxge/cfx_gemodule.h
@@ -35,9 +35,9 @@
explicit CFX_GEModule(const char** pUserFontPaths);
~CFX_GEModule();
- std::unique_ptr<CFX_FontCache> const m_pFontCache;
- std::unique_ptr<CFX_FontMgr> const m_pFontMgr;
std::unique_ptr<PlatformIface> const m_pPlatform;
+ std::unique_ptr<CFX_FontMgr> const m_pFontMgr;
+ std::unique_ptr<CFX_FontCache> const m_pFontCache;
const char** const m_pUserFontPaths;
};