poppler/CairoOutputDev.cc | 7 ++----- poppler/CairoOutputDev.h | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-)
New commits: commit 9e15cbae552be5a7b787a07e661ab849427537aa Author: Michal <[email protected]> Date: Sat Jan 4 21:49:29 2020 +0000 make FT_Library initialisation thread-safe diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc index 52b05cd4..2302f082 100644 --- a/poppler/CairoOutputDev.cc +++ b/poppler/CairoOutputDev.cc @@ -118,15 +118,12 @@ void CairoImage::setImage (cairo_surface_t *i) { // FT_Library instance; to avoid leaks, just use a single global instance // initialized the first time it is needed. FT_Library CairoOutputDev::ft_lib; -bool CairoOutputDev::ft_lib_initialized = false; +std::once_flag CairoOutputDev::ft_lib_once_flag; CairoOutputDev::CairoOutputDev() { doc = nullptr; - if (!ft_lib_initialized) { - FT_Init_FreeType(&ft_lib); - ft_lib_initialized = true; - } + std::call_once(ft_lib_once_flag, FT_Init_FreeType, &ft_lib); fontEngine = nullptr; fontEngine_owner = false; diff --git a/poppler/CairoOutputDev.h b/poppler/CairoOutputDev.h index 9da5322b..537560f6 100644 --- a/poppler/CairoOutputDev.h +++ b/poppler/CairoOutputDev.h @@ -320,7 +320,7 @@ protected: PDFDoc *doc; // the current document static FT_Library ft_lib; - static bool ft_lib_initialized; + static std::once_flag ft_lib_once_flag; CairoFontEngine *fontEngine; bool fontEngine_owner; _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
