poppler/GlobalParams.cc | 14 +++++++------- poppler/GlobalParams.h | 2 +- poppler/UnicodeMap.cc | 18 ++++++++---------- poppler/UnicodeMap.h | 11 ++++++----- 4 files changed, 22 insertions(+), 23 deletions(-)
New commits: commit 4f16f53e2b2fc0b83bad9ffcb0c869200f06a406 Author: Albert Astals Cid <[email protected]> Date: Fri Jan 3 14:11:01 2020 +0100 Make UnicodeMap::encodingName be a std::string diff --git a/poppler/GlobalParams.cc b/poppler/GlobalParams.cc index bbc2e668..71824bc2 100644 --- a/poppler/GlobalParams.cc +++ b/poppler/GlobalParams.cc @@ -428,17 +428,17 @@ GlobalParams::GlobalParams(const char *customPopplerDataDir) // set up the residentUnicodeMaps table residentUnicodeMaps.reserve(6); UnicodeMap map = {"Latin1", false, latin1UnicodeMapRanges, latin1UnicodeMapLen}; - residentUnicodeMaps.emplace(map.getEncodingName()->toStr(), std::move(map)); + residentUnicodeMaps.emplace(map.getEncodingName(), std::move(map)); map = {"ASCII7", false, ascii7UnicodeMapRanges, ascii7UnicodeMapLen}; - residentUnicodeMaps.emplace(map.getEncodingName()->toStr(), std::move(map)); + residentUnicodeMaps.emplace(map.getEncodingName(), std::move(map)); map = {"Symbol", false, symbolUnicodeMapRanges, symbolUnicodeMapLen}; - residentUnicodeMaps.emplace(map.getEncodingName()->toStr(), std::move(map)); + residentUnicodeMaps.emplace(map.getEncodingName(), std::move(map)); map = {"ZapfDingbats", false, zapfDingbatsUnicodeMapRanges, zapfDingbatsUnicodeMapLen}; - residentUnicodeMaps.emplace(map.getEncodingName()->toStr(), std::move(map)); + residentUnicodeMaps.emplace(map.getEncodingName(), std::move(map)); map = {"UTF-8", true, &mapUTF8}; - residentUnicodeMaps.emplace(map.getEncodingName()->toStr(), std::move(map)); + residentUnicodeMaps.emplace(map.getEncodingName(), std::move(map)); map = {"UTF-16", true, &mapUTF16}; - residentUnicodeMaps.emplace(map.getEncodingName()->toStr(), std::move(map)); + residentUnicodeMaps.emplace(map.getEncodingName(), std::move(map)); scanEncodingDirs(); } @@ -1164,7 +1164,7 @@ CharCodeToUnicode *GlobalParams::getCIDToUnicode(const GooString *collection) { return ctu; } -UnicodeMap *GlobalParams::getUnicodeMap(GooString *encodingName) { +UnicodeMap *GlobalParams::getUnicodeMap(const GooString *encodingName) { UnicodeMap *map; if (!(map = getResidentUnicodeMap(encodingName))) { diff --git a/poppler/GlobalParams.h b/poppler/GlobalParams.h index 795afcf5..2e72982a 100644 --- a/poppler/GlobalParams.h +++ b/poppler/GlobalParams.h @@ -134,7 +134,7 @@ public: bool getErrQuiet(); CharCodeToUnicode *getCIDToUnicode(const GooString *collection); - UnicodeMap *getUnicodeMap(GooString *encodingName); + UnicodeMap *getUnicodeMap(const GooString *encodingName); CMap *getCMap(const GooString *collection, const GooString *cMapName, Stream *stream = nullptr); UnicodeMap *getTextEncoding(); diff --git a/poppler/UnicodeMap.cc b/poppler/UnicodeMap.cc index de531166..377c9ac0 100644 --- a/poppler/UnicodeMap.cc +++ b/poppler/UnicodeMap.cc @@ -50,7 +50,7 @@ struct UnicodeMapExt { //------------------------------------------------------------------------ -UnicodeMap *UnicodeMap::parse(GooString *encodingNameA) { +UnicodeMap *UnicodeMap::parse(const GooString *encodingNameA) { FILE *f; UnicodeMap *map; UnicodeMapRange *range; @@ -68,7 +68,7 @@ UnicodeMap *UnicodeMap::parse(GooString *encodingNameA) { return nullptr; } - map = new UnicodeMap(encodingNameA->copy()); + map = new UnicodeMap(encodingNameA->toStr()); size = 8; UnicodeMapRange *customRanges = (UnicodeMapRange *)gmallocn(size, sizeof(UnicodeMapRange)); @@ -129,7 +129,7 @@ UnicodeMap *UnicodeMap::parse(GooString *encodingNameA) { return map; } -UnicodeMap::UnicodeMap(GooString *encodingNameA) { +UnicodeMap::UnicodeMap(const std::string &encodingNameA) { encodingName = encodingNameA; unicodeOut = false; kind = unicodeMapUser; @@ -142,7 +142,7 @@ UnicodeMap::UnicodeMap(GooString *encodingNameA) { UnicodeMap::UnicodeMap(const char *encodingNameA, bool unicodeOutA, const UnicodeMapRange *rangesA, int lenA) { - encodingName = new GooString(encodingNameA); + encodingName = encodingNameA; unicodeOut = unicodeOutA; kind = unicodeMapResident; ranges = rangesA; @@ -154,7 +154,7 @@ UnicodeMap::UnicodeMap(const char *encodingNameA, bool unicodeOutA, UnicodeMap::UnicodeMap(const char *encodingNameA, bool unicodeOutA, UnicodeMapFunc funcA) { - encodingName = new GooString(encodingNameA); + encodingName = encodingNameA; unicodeOut = unicodeOutA; kind = unicodeMapFunc; func = funcA; @@ -164,7 +164,6 @@ UnicodeMap::UnicodeMap(const char *encodingNameA, bool unicodeOutA, } UnicodeMap::~UnicodeMap() { - delete encodingName; if (kind == unicodeMapUser && ranges) { gfree(const_cast<UnicodeMapRange *>(ranges)); } @@ -174,7 +173,7 @@ UnicodeMap::~UnicodeMap() { } UnicodeMap::UnicodeMap(UnicodeMap &&other) noexcept - : encodingName{other.encodingName} + : encodingName{std::move(other.encodingName)} , kind{other.kind} , unicodeOut{other.unicodeOut} , len{other.len} @@ -192,7 +191,6 @@ UnicodeMap::UnicodeMap(UnicodeMap &&other) noexcept func = other.func; break; } - other.encodingName = nullptr; other.eMaps = nullptr; } @@ -258,7 +256,7 @@ void UnicodeMap::decRefCnt() { } bool UnicodeMap::match(const GooString *encodingNameA) const { - return !encodingName->cmp(encodingNameA); + return encodingName == encodingNameA->toStr(); } int UnicodeMap::mapUnicode(Unicode u, char *buf, int bufSize) const { @@ -328,7 +326,7 @@ UnicodeMapCache::~UnicodeMapCache() { } } -UnicodeMap *UnicodeMapCache::getUnicodeMap(GooString *encodingName) { +UnicodeMap *UnicodeMapCache::getUnicodeMap(const GooString *encodingName) { UnicodeMap *map; int i, j; diff --git a/poppler/UnicodeMap.h b/poppler/UnicodeMap.h index 641519b4..bf412bf3 100644 --- a/poppler/UnicodeMap.h +++ b/poppler/UnicodeMap.h @@ -31,6 +31,7 @@ #include "poppler-config.h" #include "CharTypes.h" #include <atomic> +#include <string> class GooString; @@ -58,7 +59,7 @@ public: // Create the UnicodeMap specified by <encodingName>. Sets the // initial reference count to 1. Returns NULL on failure. - static UnicodeMap *parse(GooString *encodingNameA); + static UnicodeMap *parse(const GooString *encodingNameA); // Create a resident UnicodeMap. UnicodeMap(const char *encodingNameA, bool unicodeOutA, @@ -82,7 +83,7 @@ public: void incRefCnt(); void decRefCnt(); - const GooString *getEncodingName() const { return encodingName; } + std::string getEncodingName() const { return encodingName; } bool isUnicode() const { return unicodeOut; } @@ -98,9 +99,9 @@ public: private: - UnicodeMap(GooString *encodingNameA); + UnicodeMap(const std::string &encodingNameA); - GooString *encodingName; + std::string encodingName; UnicodeMapKind kind; bool unicodeOut; union { @@ -129,7 +130,7 @@ public: // Get the UnicodeMap for <encodingName>. Increments its reference // count; there will be one reference for the cache plus one for the // caller of this function. Returns NULL on failure. - UnicodeMap *getUnicodeMap(GooString *encodingName); + UnicodeMap *getUnicodeMap(const GooString *encodingName); private: _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
