Commit 1367226002d48bc0d67c08cae498fd92dad41977

Authored by m-holger
1 parent ad2875a4

Remove temporary OHArray::at

libqpdf/OHArray.cc
@@ -11,17 +11,6 @@ OHArray::OHArray() @@ -11,17 +11,6 @@ OHArray::OHArray()
11 { 11 {
12 } 12 }
13 13
14 -QPDFObjectHandle  
15 -OHArray::at(size_t idx) const  
16 -{  
17 - if (idx >= elements.size()) {  
18 - throw std::logic_error(  
19 - "INTERNAL ERROR: bounds error accessing OHArray element");  
20 - }  
21 - auto const& obj = elements.at(idx);  
22 - return obj ? obj : null_oh;  
23 -}  
24 -  
25 void 14 void
26 OHArray::disconnect() 15 OHArray::disconnect()
27 { 16 {
libqpdf/QPDF_Array.cc
@@ -5,6 +5,8 @@ @@ -5,6 +5,8 @@
5 #include <qpdf/QUtil.hh> 5 #include <qpdf/QUtil.hh>
6 #include <stdexcept> 6 #include <stdexcept>
7 7
  8 +static const QPDFObjectHandle null_oh = QPDFObjectHandle::newNull();
  9 +
8 QPDF_Array::QPDF_Array(std::vector<QPDFObjectHandle> const& v) : 10 QPDF_Array::QPDF_Array(std::vector<QPDFObjectHandle> const& v) :
9 QPDFValue(::ot_array, "array") 11 QPDFValue(::ot_array, "array")
10 { 12 {
@@ -93,9 +95,9 @@ QPDF_Array::unparse() @@ -93,9 +95,9 @@ QPDF_Array::unparse()
93 return result; 95 return result;
94 } else { 96 } else {
95 std::string result = "[ "; 97 std::string result = "[ ";
96 - size_t size = elements.elements.size();  
97 - for (size_t i = 0; i < size; ++i) {  
98 - result += elements.at(i).unparse(); 98 + auto size = elements.elements.size();
  99 + for (int i = 0; i < int(size); ++i) {
  100 + result += getItem(i).unparse();
99 result += " "; 101 result += " ";
100 } 102 }
101 result += "]"; 103 result += "]";
@@ -116,8 +118,8 @@ QPDF_Array::getJSON(int json_version) @@ -116,8 +118,8 @@ QPDF_Array::getJSON(int json_version)
116 } else { 118 } else {
117 JSON j = JSON::makeArray(); 119 JSON j = JSON::makeArray();
118 size_t size = elements.elements.size(); 120 size_t size = elements.elements.size();
119 - for (size_t i = 0; i < size; ++i) {  
120 - j.addArrayElement(elements.at(i).getJSON(json_version)); 121 + for (int i = 0; i < int(size); ++i) {
  122 + j.addArrayElement(getItem(i).getJSON(json_version));
121 } 123 }
122 return j; 124 return j;
123 } 125 }
@@ -149,7 +151,8 @@ QPDF_Array::getItem(int n) const @@ -149,7 +151,8 @@ QPDF_Array::getItem(int n) const
149 throw std::logic_error( 151 throw std::logic_error(
150 "INTERNAL ERROR: bounds error accessing QPDF_Array element"); 152 "INTERNAL ERROR: bounds error accessing QPDF_Array element");
151 } 153 }
152 - return elements.at(QIntC::to_size(n)); 154 + auto const& obj = elements.elements.at(size_t(n));
  155 + return obj ? obj : null_oh;
153 } 156 }
154 } 157 }
155 158
@@ -162,10 +165,8 @@ QPDF_Array::getAsVector(std::vector&lt;QPDFObjectHandle&gt;&amp; v) const @@ -162,10 +165,8 @@ QPDF_Array::getAsVector(std::vector&lt;QPDFObjectHandle&gt;&amp; v) const
162 v.push_back(sp_elements.at(i)); 165 v.push_back(sp_elements.at(i));
163 } 166 }
164 } else { 167 } else {
165 - size_t size = elements.elements.size();  
166 - for (size_t i = 0; i < size; ++i) {  
167 - v.push_back(elements.at(i));  
168 - } 168 + v = std::vector<QPDFObjectHandle>(
  169 + elements.elements.cbegin(), elements.elements.cend());
169 } 170 }
170 } 171 }
171 172
libqpdf/qpdf/OHArray.hh
@@ -12,7 +12,6 @@ class OHArray @@ -12,7 +12,6 @@ class OHArray
12 { 12 {
13 public: 13 public:
14 OHArray(); 14 OHArray();
15 - QPDFObjectHandle at(size_t idx) const;  
16 void setAt(size_t idx, QPDFObjectHandle oh); 15 void setAt(size_t idx, QPDFObjectHandle oh);
17 void erase(size_t idx); 16 void erase(size_t idx);
18 void insert(size_t idx, QPDFObjectHandle oh); 17 void insert(size_t idx, QPDFObjectHandle oh);