summaryrefslogtreecommitdiff
path: root/Build/source/libs/xpdf/xpdf-src/splash/SplashFontFile.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/xpdf/xpdf-src/splash/SplashFontFile.cc')
-rw-r--r--Build/source/libs/xpdf/xpdf-src/splash/SplashFontFile.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/Build/source/libs/xpdf/xpdf-src/splash/SplashFontFile.cc b/Build/source/libs/xpdf/xpdf-src/splash/SplashFontFile.cc
index d0e36a20c49..2d260e38239 100644
--- a/Build/source/libs/xpdf/xpdf-src/splash/SplashFontFile.cc
+++ b/Build/source/libs/xpdf/xpdf-src/splash/SplashFontFile.cc
@@ -16,6 +16,7 @@
#ifndef _WIN32
# include <unistd.h>
#endif
+#include "gmempp.h"
#include "GString.h"
#include "SplashFontFile.h"
#include "SplashFontFileID.h"
@@ -31,6 +32,7 @@ extern "C" int unlink(char *filename);
//------------------------------------------------------------------------
SplashFontFile::SplashFontFile(SplashFontFileID *idA,
+ SplashFontType fontTypeA,
#if LOAD_FONTS_FROM_MEM
GString *fontBufA
#else
@@ -38,6 +40,7 @@ SplashFontFile::SplashFontFile(SplashFontFileID *idA,
#endif
) {
id = idA;
+ fontType = fontTypeA;
#if LOAD_FONTS_FROM_MEM
fontBuf = fontBufA;
#else
@@ -60,11 +63,22 @@ SplashFontFile::~SplashFontFile() {
}
void SplashFontFile::incRefCnt() {
+#if MULTITHREADED
+ gAtomicIncrement(&refCnt);
+#else
++refCnt;
+#endif
}
void SplashFontFile::decRefCnt() {
- if (!--refCnt) {
+ GBool done;
+
+#if MULTITHREADED
+ done = gAtomicDecrement(&refCnt) == 0;
+#else
+ done = --refCnt == 0;
+#endif
+ if (done) {
delete this;
}
}