summaryrefslogtreecommitdiff
path: root/Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc')
-rw-r--r--Build/source/libs/xpdf/xpdf-src/splash/SplashFontEngine.cc36
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;
}