utils/pdffonts.cc | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-)
New commits: commit 409121ea8b65189bcc2c8541297cd4b51c69d322 Author: Oliver Sander <[email protected]> Date: Tue Oct 29 10:35:58 2019 +0100 Do not include string.h, it is not used diff --git a/utils/pdffonts.cc b/utils/pdffonts.cc index 8708d879..fe98b8d1 100644 --- a/utils/pdffonts.cc +++ b/utils/pdffonts.cc @@ -31,7 +31,6 @@ #include <stdio.h> #include <stdlib.h> #include <stddef.h> -#include <string.h> #include <math.h> #include <memory> #include <string> commit 1601933e08e72df51e3ea923a8a34c198a29e518 Author: Oliver Sander <[email protected]> Date: Tue Oct 29 10:34:22 2019 +0100 Use std::unique_ptr for passwords diff --git a/utils/pdffonts.cc b/utils/pdffonts.cc index 652a7759..8708d879 100644 --- a/utils/pdffonts.cc +++ b/utils/pdffonts.cc @@ -93,7 +93,7 @@ static const ArgDesc argDesc[] = { }; int main(int argc, char *argv[]) { - GooString *ownerPW, *userPW; + std::unique_ptr<GooString> ownerPW, userPW; bool ok; int exitCode; @@ -124,24 +124,14 @@ int main(int argc, char *argv[]) { // open PDF file if (ownerPassword[0] != '\001') { - ownerPW = new GooString(ownerPassword); - } else { - ownerPW = nullptr; + ownerPW = std::make_unique<GooString>(ownerPassword); } if (userPassword[0] != '\001') { - userPW = new GooString(userPassword); - } else { - userPW = nullptr; + userPW = std::make_unique<GooString>(userPassword); } - auto doc = std::unique_ptr<PDFDoc>(PDFDocFactory().createPDFDoc(GooString(fileName), ownerPW, userPW)); + auto doc = std::unique_ptr<PDFDoc>(PDFDocFactory().createPDFDoc(GooString(fileName), ownerPW.get(), userPW.get())); - if (userPW) { - delete userPW; - } - if (ownerPW) { - delete ownerPW; - } if (!doc->isOk()) { exitCode = 1; goto err1; commit f37f1565c0aa4efec2eaa912397f61952f5c3c7d Author: Oliver Sander <[email protected]> Date: Tue Oct 29 10:30:19 2019 +0100 Use std::unique_ptr for PDFDoc diff --git a/utils/pdffonts.cc b/utils/pdffonts.cc index b940d6ac..652a7759 100644 --- a/utils/pdffonts.cc +++ b/utils/pdffonts.cc @@ -33,6 +33,7 @@ #include <stddef.h> #include <string.h> #include <math.h> +#include <memory> #include <string> #include "parseargs.h" #include "goo/GooString.h" @@ -92,7 +93,6 @@ static const ArgDesc argDesc[] = { }; int main(int argc, char *argv[]) { - PDFDoc *doc; GooString *ownerPW, *userPW; bool ok; int exitCode; @@ -134,7 +134,7 @@ int main(int argc, char *argv[]) { userPW = nullptr; } - doc = PDFDocFactory().createPDFDoc(GooString(fileName), ownerPW, userPW); + auto doc = std::unique_ptr<PDFDoc>(PDFDocFactory().createPDFDoc(GooString(fileName), ownerPW, userPW)); if (userPW) { delete userPW; @@ -163,7 +163,7 @@ int main(int argc, char *argv[]) { // get the fonts { - FontInfoScanner scanner(doc, firstPage - 1); + FontInfoScanner scanner(doc.get(), firstPage - 1); const std::vector<FontInfo*> fonts = scanner.scan(lastPage - firstPage + 1); if (showSubst) { @@ -212,7 +212,6 @@ int main(int argc, char *argv[]) { exitCode = 0; err1: - delete doc; delete globalParams; return exitCode; commit d1f627fefd6dc84bd37064a421fc0095dbfd21c0 Author: Oliver Sander <[email protected]> Date: Tue Oct 29 10:25:59 2019 +0100 Use std::string for the filename ... and create it on the stack rather than on the heap. Makes the code more readable. diff --git a/utils/pdffonts.cc b/utils/pdffonts.cc index 87ea9e0b..b940d6ac 100644 --- a/utils/pdffonts.cc +++ b/utils/pdffonts.cc @@ -33,6 +33,7 @@ #include <stddef.h> #include <string.h> #include <math.h> +#include <string> #include "parseargs.h" #include "goo/GooString.h" #include "goo/gmem.h" @@ -92,7 +93,6 @@ static const ArgDesc argDesc[] = { int main(int argc, char *argv[]) { PDFDoc *doc; - GooString *fileName; GooString *ownerPW, *userPW; bool ok; int exitCode; @@ -113,7 +113,11 @@ int main(int argc, char *argv[]) { exitCode = 0; return exitCode; } - fileName = new GooString(argv[1]); + + std::string fileName(argv[1]); + if (fileName == "-") { + fileName = "fd://0"; + } // read config file globalParams = new GlobalParams(); @@ -129,13 +133,8 @@ int main(int argc, char *argv[]) { } else { userPW = nullptr; } - if (fileName->cmp("-") == 0) { - delete fileName; - fileName = new GooString("fd://0"); - } - doc = PDFDocFactory().createPDFDoc(*fileName, ownerPW, userPW); - delete fileName; + doc = PDFDocFactory().createPDFDoc(GooString(fileName), ownerPW, userPW); if (userPW) { delete userPW; commit d89faa0f8ceddb81fc4430dec08023ac987ad0e4 Author: Oliver Sander <[email protected]> Date: Tue Oct 29 10:24:48 2019 +0100 Remove the 'err0' error handling goto target It is used only once, and removing it allows me to move variable declarations around more freely. diff --git a/utils/pdffonts.cc b/utils/pdffonts.cc index 24eb5038..87ea9e0b 100644 --- a/utils/pdffonts.cc +++ b/utils/pdffonts.cc @@ -111,7 +111,7 @@ int main(int argc, char *argv[]) { } if (printVersion || printHelp) exitCode = 0; - goto err0; + return exitCode; } fileName = new GooString(argv[1]); @@ -215,7 +215,6 @@ int main(int argc, char *argv[]) { err1: delete doc; delete globalParams; - err0: return exitCode; } _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
