Commit cbd5db35abcaecc222c93339b3fb4da0076ee402

Authored by m-holger
1 parent 72bda79c

Refactor `QPDFEFStreamObjectHelper`: simplify dictionary access, replace redunda…

…nt checks, and streamline string handling.
libqpdf/QPDFEFStreamObjectHelper.cc
@@ -5,8 +5,11 @@ @@ -5,8 +5,11 @@
5 #include <qpdf/Pl_MD5.hh> 5 #include <qpdf/Pl_MD5.hh>
6 #include <qpdf/QIntC.hh> 6 #include <qpdf/QIntC.hh>
7 #include <qpdf/QPDF.hh> 7 #include <qpdf/QPDF.hh>
  8 +#include <qpdf/QPDFObjectHandle_private.hh>
8 #include <qpdf/QUtil.hh> 9 #include <qpdf/QUtil.hh>
9 10
  11 +using namespace qpdf;
  12 +
10 class QPDFEFStreamObjectHelper::Members 13 class QPDFEFStreamObjectHelper::Members
11 { 14 {
12 }; 15 };
@@ -19,41 +22,38 @@ QPDFEFStreamObjectHelper::QPDFEFStreamObjectHelper(QPDFObjectHandle oh) : @@ -19,41 +22,38 @@ QPDFEFStreamObjectHelper::QPDFEFStreamObjectHelper(QPDFObjectHandle oh) :
19 QPDFObjectHandle 22 QPDFObjectHandle
20 QPDFEFStreamObjectHelper::getParam(std::string const& pkey) 23 QPDFEFStreamObjectHelper::getParam(std::string const& pkey)
21 { 24 {
22 - auto params = oh().getDict().getKey("/Params");  
23 - if (params.isDictionary()) {  
24 - return params.getKey(pkey); 25 + if (auto result = oh().getDict()["/Params"][pkey]) {
  26 + return result;
25 } 27 }
26 - return QPDFObjectHandle::newNull(); 28 + return {};
27 } 29 }
28 30
29 void 31 void
30 QPDFEFStreamObjectHelper::setParam(std::string const& pkey, QPDFObjectHandle const& pval) 32 QPDFEFStreamObjectHelper::setParam(std::string const& pkey, QPDFObjectHandle const& pval)
31 { 33 {
32 - auto params = oh().getDict().getKey("/Params");  
33 - if (!params.isDictionary()) {  
34 - params = oh().getDict().replaceKeyAndGetNew("/Params", QPDFObjectHandle::newDictionary()); 34 + if (Dictionary Params = oh().getDict()["/Params"]) {
  35 + Params.replaceKey(pkey, pval);
  36 + return;
35 } 37 }
36 - params.replaceKey(pkey, pval); 38 + oh().getDict().replaceKey("/Params", Dictionary({{pkey, pval}}));
37 } 39 }
38 40
39 std::string 41 std::string
40 QPDFEFStreamObjectHelper::getCreationDate() 42 QPDFEFStreamObjectHelper::getCreationDate()
41 { 43 {
42 - auto val = getParam("/CreationDate");  
43 - if (val.isString()) {  
44 - return val.getUTF8Value(); 44 + if (String CreationDate = getParam("/CreationDate")) {
  45 + return CreationDate.utf8_value();
45 } 46 }
46 - return ""; 47 + return {};
47 } 48 }
48 49
49 std::string 50 std::string
50 QPDFEFStreamObjectHelper::getModDate() 51 QPDFEFStreamObjectHelper::getModDate()
51 { 52 {
52 - auto val = getParam("/ModDate");  
53 - if (val.isString()) {  
54 - return val.getUTF8Value(); 53 + if (String ModDate = getParam("/ModDate")) {
  54 + return ModDate.utf8_value();
55 } 55 }
56 - return ""; 56 + return {};
57 } 57 }
58 58
59 size_t 59 size_t
@@ -82,11 +82,10 @@ QPDFEFStreamObjectHelper::getSubtype() @@ -82,11 +82,10 @@ QPDFEFStreamObjectHelper::getSubtype()
82 std::string 82 std::string
83 QPDFEFStreamObjectHelper::getChecksum() 83 QPDFEFStreamObjectHelper::getChecksum()
84 { 84 {
85 - auto val = getParam("/CheckSum");  
86 - if (val.isString()) {  
87 - return val.getStringValue(); 85 + if (String CheckSum = getParam("/CheckSum")) {
  86 + return CheckSum.value();
88 } 87 }
89 - return ""; 88 + return {};
90 } 89 }
91 90
92 QPDFEFStreamObjectHelper 91 QPDFEFStreamObjectHelper