[poppler] poppler/GlobalParams.cc poppler/GlobalParams.h poppler/PSOutputDev.cc poppler/UnicodeMap.cc poppler/UnicodeMap.h poppler/UTF.cc
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Jan 5 22:54:34 UTC 2020
poppler/GlobalParams.cc | 15 +++++++--------
poppler/GlobalParams.h | 6 +++---
poppler/PSOutputDev.cc | 4 ++--
poppler/UTF.cc | 3 +--
poppler/UnicodeMap.cc | 22 +++++++++++-----------
poppler/UnicodeMap.h | 8 +++-----
6 files changed, 27 insertions(+), 31 deletions(-)
New commits:
commit c4f8555b6a8085a6a5b3c18a8a21e8aab51fe6d9
Author: Albert Astals Cid <aacid at kde.org>
Date: Sun Jan 5 01:20:37 2020 +0100
Make getUnicodeMap param a const & instead a const *
Now you can write globalParams->getUnicodeMap("UTF-8")
which makes much more sense
diff --git a/poppler/GlobalParams.cc b/poppler/GlobalParams.cc
index 8b69e499..31a83e33 100644
--- a/poppler/GlobalParams.cc
+++ b/poppler/GlobalParams.cc
@@ -586,11 +586,11 @@ Unicode GlobalParams::mapNameToUnicodeText(const char *charName) {
return nameToUnicodeText->lookup(charName);
}
-UnicodeMap *GlobalParams::getResidentUnicodeMap(const GooString *encodingName) {
+UnicodeMap *GlobalParams::getResidentUnicodeMap(const std::string &encodingName) {
UnicodeMap *map = nullptr;
globalParamsLocker();
- const auto unicodeMap = residentUnicodeMaps.find(encodingName->toStr());
+ const auto unicodeMap = residentUnicodeMaps.find(encodingName);
if (unicodeMap != residentUnicodeMaps.end()) {
map = &unicodeMap->second;
}
@@ -598,11 +598,11 @@ UnicodeMap *GlobalParams::getResidentUnicodeMap(const GooString *encodingName) {
return map;
}
-FILE *GlobalParams::getUnicodeMapFile(const GooString *encodingName) {
+FILE *GlobalParams::getUnicodeMapFile(const std::string &encodingName) {
FILE *file = nullptr;
globalParamsLocker();
- const auto unicodeMap = unicodeMaps.find(encodingName->toStr());
+ const auto unicodeMap = unicodeMaps.find(encodingName);
if (unicodeMap != unicodeMaps.end()) {
file = openFile(unicodeMap->second.c_str(), "r");
}
@@ -1135,8 +1135,7 @@ std::string GlobalParams::getTextEncodingName() const {
const UnicodeMap *GlobalParams::getUtf8Map() {
if (!utf8Map) {
- GooString enc("UTF-8");
- utf8Map = globalParams->getUnicodeMap(&enc);
+ utf8Map = globalParams->getUnicodeMap("UTF-8");
}
return utf8Map;
@@ -1174,7 +1173,7 @@ CharCodeToUnicode *GlobalParams::getCIDToUnicode(const GooString *collection) {
return ctu;
}
-const UnicodeMap *GlobalParams::getUnicodeMap(const GooString *encodingName) {
+const UnicodeMap *GlobalParams::getUnicodeMap(const std::string &encodingName) {
const UnicodeMap *map;
if (!(map = getResidentUnicodeMap(encodingName))) {
@@ -1191,7 +1190,7 @@ CMap *GlobalParams::getCMap(const GooString *collection, const GooString *cMapNa
}
const UnicodeMap *GlobalParams::getTextEncoding() {
- return getUnicodeMap(textEncoding);
+ return getUnicodeMap(textEncoding->toStr());
}
std::vector<GooString*> *GlobalParams::getEncodingNames()
diff --git a/poppler/GlobalParams.h b/poppler/GlobalParams.h
index 3a99edf9..a5adda92 100644
--- a/poppler/GlobalParams.h
+++ b/poppler/GlobalParams.h
@@ -116,8 +116,8 @@ public:
// lookups or text extraction with ZapfDingbats fonts.
Unicode mapNameToUnicodeAll(const char *charName);
- UnicodeMap *getResidentUnicodeMap(const GooString *encodingName);
- FILE *getUnicodeMapFile(const GooString *encodingName);
+ UnicodeMap *getResidentUnicodeMap(const std::string &encodingName);
+ FILE *getUnicodeMapFile(const std::string &encodingName);
FILE *findCMapFile(const GooString *collection, const GooString *cMapName);
FILE *findToUnicodeFile(const GooString *name);
GooString *findFontFile(const GooString *fontName);
@@ -135,7 +135,7 @@ public:
bool getErrQuiet();
CharCodeToUnicode *getCIDToUnicode(const GooString *collection);
- const UnicodeMap *getUnicodeMap(const GooString *encodingName);
+ const UnicodeMap *getUnicodeMap(const std::string &encodingName);
CMap *getCMap(const GooString *collection, const GooString *cMapName, Stream *stream = nullptr);
const UnicodeMap *getTextEncoding();
diff --git a/poppler/PSOutputDev.cc b/poppler/PSOutputDev.cc
index 0a5e20d1..42c68171 100644
--- a/poppler/PSOutputDev.cc
+++ b/poppler/PSOutputDev.cc
@@ -2046,7 +2046,7 @@ void PSOutputDev::setupFont(GfxFont *font, Dict *parentResDict) {
sizeof(PSFont16Enc));
}
font16Enc[font16EncLen].fontID = *font->getID();
- if ((uMap = globalParams->getUnicodeMap(fontLoc->encoding))) {
+ if ((uMap = globalParams->getUnicodeMap(fontLoc->encoding->toStr()))) {
font16Enc[font16EncLen].enc = fontLoc->encoding->copy();
} else {
error(errSyntaxError, -1,
@@ -5099,7 +5099,7 @@ void PSOutputDev::drawString(GfxState *state, const GooString *s) {
// font substitution failed, so don't output any text
return;
}
- uMap = globalParams->getUnicodeMap(font16Enc[i].enc);
+ uMap = globalParams->getUnicodeMap(font16Enc[i].enc->toStr());
break;
}
}
diff --git a/poppler/UTF.cc b/poppler/UTF.cc
index cb2e6775..b5790640 100644
--- a/poppler/UTF.cc
+++ b/poppler/UTF.cc
@@ -423,8 +423,7 @@ char *utf16ToUtf8(const uint16_t *utf16, int *len)
void unicodeToAscii7(const Unicode *in, int len, Unicode **ucs4_out,
int *out_len, const int *in_idx, int **indices)
{
- GooString enc("ASCII7");
- const UnicodeMap *uMap = globalParams->getUnicodeMap(&enc);
+ const UnicodeMap *uMap = globalParams->getUnicodeMap("ASCII7");
int *idx = nullptr;
if (!len) {
diff --git a/poppler/UnicodeMap.cc b/poppler/UnicodeMap.cc
index 8a3080e7..03d7e9d2 100644
--- a/poppler/UnicodeMap.cc
+++ b/poppler/UnicodeMap.cc
@@ -50,7 +50,7 @@ struct UnicodeMapExt {
//------------------------------------------------------------------------
-UnicodeMap *UnicodeMap::parse(const GooString *encodingNameA) {
+UnicodeMap *UnicodeMap::parse(const std::string &encodingNameA) {
FILE *f;
UnicodeMap *map;
UnicodeMapRange *range;
@@ -63,12 +63,12 @@ UnicodeMap *UnicodeMap::parse(const GooString *encodingNameA) {
if (!(f = globalParams->getUnicodeMapFile(encodingNameA))) {
error(errSyntaxError, -1,
- "Couldn't find unicodeMap file for the '{0:t}' encoding",
- encodingNameA);
+ "Couldn't find unicodeMap file for the '{0:s}' encoding",
+ encodingNameA.c_str());
return nullptr;
}
- map = new UnicodeMap(encodingNameA->toStr());
+ map = new UnicodeMap(encodingNameA);
size = 8;
UnicodeMapRange *customRanges = (UnicodeMapRange *)gmallocn(size, sizeof(UnicodeMapRange));
@@ -112,13 +112,13 @@ UnicodeMap *UnicodeMap::parse(const GooString *encodingNameA) {
++map->eMapsLen;
} else {
error(errSyntaxError, -1,
- "Bad line ({0:d}) in unicodeMap file for the '{1:t}' encoding",
- line, encodingNameA);
+ "Bad line ({0:d}) in unicodeMap file for the '{1:s}' encoding",
+ line, encodingNameA.c_str());
}
} else {
error(errSyntaxError, -1,
- "Bad line ({0:d}) in unicodeMap file for the '{1:t}' encoding",
- line, encodingNameA);
+ "Bad line ({0:d}) in unicodeMap file for the '{1:s}' encoding",
+ line, encodingNameA.c_str());
}
++line;
}
@@ -241,8 +241,8 @@ void UnicodeMap::swap(UnicodeMap &other) noexcept
swap(eMapsLen, other.eMapsLen);
}
-bool UnicodeMap::match(const GooString *encodingNameA) const {
- return encodingName == encodingNameA->toStr();
+bool UnicodeMap::match(const std::string &encodingNameA) const {
+ return encodingName == encodingNameA;
}
int UnicodeMap::mapUnicode(Unicode u, char *buf, int bufSize) const {
@@ -303,7 +303,7 @@ UnicodeMapCache::~UnicodeMapCache() {
}
}
-const UnicodeMap *UnicodeMapCache::getUnicodeMap(const GooString *encodingName) {
+const UnicodeMap *UnicodeMapCache::getUnicodeMap(const std::string &encodingName) {
for (UnicodeMap *map : cache) {
if (map->match(encodingName)) {
return map;
diff --git a/poppler/UnicodeMap.h b/poppler/UnicodeMap.h
index 2de5a4ce..c9bc7aeb 100644
--- a/poppler/UnicodeMap.h
+++ b/poppler/UnicodeMap.h
@@ -35,8 +35,6 @@
#include <string>
#include <vector>
-class GooString;
-
//------------------------------------------------------------------------
enum UnicodeMapKind {
@@ -61,7 +59,7 @@ public:
// Create the UnicodeMap specified by <encodingName>. Sets the
// initial reference count to 1. Returns NULL on failure.
- static UnicodeMap *parse(const GooString *encodingNameA);
+ static UnicodeMap *parse(const std::string &encodingNameA);
// Create a resident UnicodeMap.
UnicodeMap(const char *encodingNameA, bool unicodeOutA,
@@ -88,7 +86,7 @@ public:
// Return true if this UnicodeMap matches the specified
// <encodingNameA>.
- bool match(const GooString *encodingNameA) const;
+ bool match(const std::string &encodingNameA) const;
// Map Unicode to the target encoding. Fills in <buf> with the
// output and returns the number of bytes used. Output will be
@@ -124,7 +122,7 @@ public:
UnicodeMapCache& operator=(const UnicodeMapCache &) = delete;
// Get the UnicodeMap for <encodingName>. Returns NULL on failure.
- const UnicodeMap *getUnicodeMap(const GooString *encodingName);
+ const UnicodeMap *getUnicodeMap(const std::string &encodingName);
private:
More information about the poppler
mailing list