poppler/SplashOutputDev.cc | 18 +++++++++--------- splash/SplashFTFontFile.cc | 6 +++--- splash/SplashFontFile.cc | 33 +++++++-------------------------- splash/SplashFontFile.h | 12 ++++++------ 4 files changed, 25 insertions(+), 44 deletions(-)
New commits: commit efe7d77838896ddcefb838f382628ae31be54d99 Author: Oliver Sander <[email protected]> Date: Tue Mar 15 11:03:58 2022 +0100 Use std::string for filename in SplashFontSrc diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc index 9045032a..23284f6b 100644 --- a/poppler/SplashOutputDev.cc +++ b/poppler/SplashOutputDev.cc @@ -1894,7 +1894,7 @@ reload: } // embedded font - const GooString *fileName = nullptr; + std::string fileName; if (fontLoc->locType == gfxFontLocEmbedded) { // if there is an embedded font, read it to memory @@ -1905,13 +1905,13 @@ reload: // external font } else { // gfxFontLocExternal - fileName = fontLoc->pathAsGooString(); + fileName = fontLoc->path; fontType = fontLoc->fontType; doAdjustFontMatrix = true; } fontsrc = new SplashFontSrc; - if (fileName) { + if (!fileName.empty()) { fontsrc->setFile(fileName); } else { fontsrc->setBuf(tmpBuf, tmpBufLen); @@ -1949,8 +1949,8 @@ reload: case fontTrueType: case fontTrueTypeOT: { std::unique_ptr<FoFiTrueType> ff; - if (fileName) { - ff = FoFiTrueType::load(fileName->c_str()); + if (!fileName.empty()) { + ff = FoFiTrueType::load(fileName.c_str()); } else { ff = FoFiTrueType::make(tmpBuf, tmpBufLen); } @@ -2023,8 +2023,8 @@ reload: } } else { std::unique_ptr<FoFiTrueType> ff; - if (fileName) { - ff = FoFiTrueType::load(fileName->c_str()); + if (!fileName.empty()) { + ff = FoFiTrueType::load(fileName.c_str()); } else { ff = FoFiTrueType::make(tmpBuf, tmpBufLen); } diff --git a/splash/SplashFTFontFile.cc b/splash/SplashFTFontFile.cc index 5b8ef14f..bb2c098c 100644 --- a/splash/SplashFTFontFile.cc +++ b/splash/SplashFTFontFile.cc @@ -42,7 +42,7 @@ SplashFontFile *SplashFTFontFile::loadType1Font(SplashFTFontEngine *engineA, Spl int i; if (src->isFile) { - if (FT_New_Face(engineA->lib, src->fileName->c_str(), 0, &faceA)) { + if (FT_New_Face(engineA->lib, src->fileName.c_str(), 0, &faceA)) { return nullptr; } } else { @@ -72,7 +72,7 @@ SplashFontFile *SplashFTFontFile::loadCIDFont(SplashFTFontEngine *engineA, Splas FT_Face faceA; if (src->isFile) { - if (FT_New_Face(engineA->lib, src->fileName->c_str(), 0, &faceA)) { + if (FT_New_Face(engineA->lib, src->fileName.c_str(), 0, &faceA)) { return nullptr; } } else { @@ -89,7 +89,7 @@ SplashFontFile *SplashFTFontFile::loadTrueTypeFont(SplashFTFontEngine *engineA, FT_Face faceA; if (src->isFile) { - if (FT_New_Face(engineA->lib, src->fileName->c_str(), faceIndexA, &faceA)) { + if (FT_New_Face(engineA->lib, src->fileName.c_str(), faceIndexA, &faceA)) { return nullptr; } } else { diff --git a/splash/SplashFontFile.cc b/splash/SplashFontFile.cc index 44de3340..ec101da5 100644 --- a/splash/SplashFontFile.cc +++ b/splash/SplashFontFile.cc @@ -80,10 +80,6 @@ SplashFontSrc::~SplashFontSrc() gfree(buf); } } - - if (isFile && fileName) { - delete fileName; - } } void SplashFontSrc::ref() @@ -98,10 +94,10 @@ void SplashFontSrc::unref() } } -void SplashFontSrc::setFile(const GooString *file) +void SplashFontSrc::setFile(const std::string &file) { isFile = true; - fileName = file->copy(); + fileName = file; } void SplashFontSrc::setBuf(char *bufA, int bufLenA) diff --git a/splash/SplashFontFile.h b/splash/SplashFontFile.h index d547d626..1e1e4fe1 100644 --- a/splash/SplashFontFile.h +++ b/splash/SplashFontFile.h @@ -23,10 +23,11 @@ #ifndef SPLASHFONTFILE_H #define SPLASHFONTFILE_H +#include <string> + #include "SplashTypes.h" #include "poppler_private_export.h" -class GooString; class SplashFontEngine; class SplashFont; class SplashFontFileID; @@ -43,14 +44,14 @@ public: SplashFontSrc(const SplashFontSrc &) = delete; SplashFontSrc &operator=(const SplashFontSrc &) = delete; - void setFile(const GooString *file); + void setFile(const std::string &file); void setBuf(char *bufA, int buflenA); void ref(); void unref(); bool isFile; - GooString *fileName; + std::string fileName; char *buf; int bufLen; commit 27a6d29018817a2263d69aadeb965dee3f5bc927 Author: Oliver Sander <[email protected]> Date: Tue Mar 15 10:51:46 2022 +0100 Remove the deleteSrc variable from SplashFontSrc The way SplashFontSrc is used the variable is always equal to !isFile. diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc index ed6bd4cb..9045032a 100644 --- a/poppler/SplashOutputDev.cc +++ b/poppler/SplashOutputDev.cc @@ -1912,9 +1912,9 @@ reload: fontsrc = new SplashFontSrc; if (fileName) { - fontsrc->setFile(fileName, false); + fontsrc->setFile(fileName); } else { - fontsrc->setBuf(tmpBuf, tmpBufLen, true); + fontsrc->setBuf(tmpBuf, tmpBufLen); } // load the font file diff --git a/splash/SplashFontFile.cc b/splash/SplashFontFile.cc index c5b3135c..44de3340 100644 --- a/splash/SplashFontFile.cc +++ b/splash/SplashFontFile.cc @@ -14,6 +14,7 @@ // Copyright (C) 2006 Takashi Iwai <[email protected]> // Copyright (C) 2008 Albert Astals Cid <[email protected]> // Copyright (C) 2019 Christian Persch <[email protected]> +// Copyright (C) 2022 Oliver Sander <[email protected]> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -67,7 +68,6 @@ void SplashFontFile::decRefCnt() SplashFontSrc::SplashFontSrc() { isFile = false; - deleteSrc = false; fileName = nullptr; buf = nullptr; refcnt = 1; @@ -75,15 +75,9 @@ SplashFontSrc::SplashFontSrc() SplashFontSrc::~SplashFontSrc() { - if (deleteSrc) { - if (isFile) { - if (fileName) { - unlink(fileName->c_str()); - } - } else { - if (buf) { - gfree(buf); - } + if (!isFile) { + if (buf) { + gfree(buf); } } @@ -104,17 +98,15 @@ void SplashFontSrc::unref() } } -void SplashFontSrc::setFile(const GooString *file, bool del) +void SplashFontSrc::setFile(const GooString *file) { isFile = true; fileName = file->copy(); - deleteSrc = del; } -void SplashFontSrc::setBuf(char *bufA, int bufLenA, bool del) +void SplashFontSrc::setBuf(char *bufA, int bufLenA) { isFile = false; buf = bufA; bufLen = bufLenA; - deleteSrc = del; } diff --git a/splash/SplashFontFile.h b/splash/SplashFontFile.h index 16c93626..d547d626 100644 --- a/splash/SplashFontFile.h +++ b/splash/SplashFontFile.h @@ -13,6 +13,7 @@ // // Copyright (C) 2006 Takashi Iwai <[email protected]> // Copyright (C) 2008, 2010, 2018 Albert Astals Cid <[email protected]> +// Copyright (C) 2022 Oliver Sander <[email protected]> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -42,8 +43,8 @@ public: SplashFontSrc(const SplashFontSrc &) = delete; SplashFontSrc &operator=(const SplashFontSrc &) = delete; - void setFile(const GooString *file, bool del); - void setBuf(char *bufA, int buflenA, bool del); + void setFile(const GooString *file); + void setBuf(char *bufA, int buflenA); void ref(); void unref(); @@ -56,7 +57,6 @@ public: private: ~SplashFontSrc(); int refcnt; - bool deleteSrc; }; class SplashFontFile commit d6f3aabff3442d3a78de13917e8222d7896e526a Author: Oliver Sander <[email protected]> Date: Tue Mar 15 10:47:01 2022 +0100 Remove method SplashFontSrc::setFile(const char *file, bool del) It is never used. diff --git a/splash/SplashFontFile.cc b/splash/SplashFontFile.cc index 36172266..c5b3135c 100644 --- a/splash/SplashFontFile.cc +++ b/splash/SplashFontFile.cc @@ -111,13 +111,6 @@ void SplashFontSrc::setFile(const GooString *file, bool del) deleteSrc = del; } -void SplashFontSrc::setFile(const char *file, bool del) -{ - isFile = true; - fileName = new GooString(file); - deleteSrc = del; -} - void SplashFontSrc::setBuf(char *bufA, int bufLenA, bool del) { isFile = false; diff --git a/splash/SplashFontFile.h b/splash/SplashFontFile.h index 2f7b49d2..16c93626 100644 --- a/splash/SplashFontFile.h +++ b/splash/SplashFontFile.h @@ -43,7 +43,6 @@ public: SplashFontSrc &operator=(const SplashFontSrc &) = delete; void setFile(const GooString *file, bool del); - void setFile(const char *file, bool del); void setBuf(char *bufA, int buflenA, bool del); void ref();
