diff options
Diffstat (limited to 'Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc')
-rw-r--r-- | Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc b/Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc index fe377fe25f4..81afe0cd914 100644 --- a/Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc +++ b/Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc @@ -20,6 +20,7 @@ #include "gmem.h" #include "gmempp.h" #include "GString.h" +#include "GList.h" #include "SplashMath.h" #include "SplashFTFontEngine.h" #include "SplashFontFile.h" @@ -48,6 +49,7 @@ SplashFontEngine::SplashFontEngine( for (i = 0; i < splashFontCacheSize; ++i) { fontCache[i] = NULL; } + badFontFiles = new GList(); #if HAVE_FREETYPE_H if (enableFreeType) { @@ -66,6 +68,7 @@ SplashFontEngine::~SplashFontEngine() { delete fontCache[i]; } } + deleteGList(badFontFiles, SplashFontFileID); #if HAVE_FREETYPE_H if (ftEngine) { @@ -89,6 +92,15 @@ SplashFontFile *SplashFontEngine::getFontFile(SplashFontFileID *id) { return NULL; } +GBool SplashFontEngine::checkForBadFontFile(SplashFontFileID *id) { + for (int i = 0; i < badFontFiles->getLength(); ++i) { + if (((SplashFontFileID *)badFontFiles->get(i))->matches(id)) { + return gTrue; + } + } + return gFalse; +} + SplashFontFile *SplashFontEngine::loadType1Font(SplashFontFileID *idA, #if LOAD_FONTS_FROM_MEM GString *fontBuf, @@ -122,6 +134,10 @@ SplashFontFile *SplashFontEngine::loadType1Font(SplashFontFileID *idA, } #endif + if (!fontFile) { + badFontFiles->append(idA); + } + return fontFile; } @@ -162,6 +178,10 @@ SplashFontFile *SplashFontEngine::loadType1CFont(SplashFontFileID *idA, } #endif + if (!fontFile) { + badFontFiles->append(idA); + } + return fontFile; } @@ -202,6 +222,10 @@ SplashFontFile *SplashFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA, } #endif + if (!fontFile) { + badFontFiles->append(idA); + } + return fontFile; } @@ -243,6 +267,10 @@ SplashFontFile *SplashFontEngine::loadCIDFont(SplashFontFileID *idA, } #endif + if (!fontFile) { + badFontFiles->append(idA); + } + return fontFile; } @@ -284,6 +312,10 @@ SplashFontFile *SplashFontEngine::loadOpenTypeCFFFont(SplashFontFileID *idA, } #endif + if (!fontFile) { + badFontFiles->append(idA); + } + return fontFile; } @@ -327,6 +359,10 @@ SplashFontFile *SplashFontEngine::loadTrueTypeFont(SplashFontFileID *idA, } #endif + if (!fontFile) { + badFontFiles->append(idA); + } + return fontFile; } |