Commit ad2875a4aa6cc22e32bbaa848ae71619ff51c138

Authored by m-holger
1 parent 8fdc3f09

Remove temporary OHArray::size, append and remove_last

Also, add const overload of QPDFObjectHandle::getObj
include/qpdf/QPDFObjectHandle.hh
... ... @@ -1578,6 +1578,11 @@ class QPDFObjectHandle
1578 1578 {
1579 1579 return obj;
1580 1580 }
  1581 + std::shared_ptr<QPDFObject>
  1582 + getObj() const
  1583 + {
  1584 + return obj;
  1585 + }
1581 1586 QPDFObject*
1582 1587 getObjectPtr()
1583 1588 {
... ...
libqpdf/OHArray.cc
... ... @@ -11,24 +11,6 @@ OHArray::OHArray()
11 11 {
12 12 }
13 13  
14   -size_t
15   -OHArray::size() const
16   -{
17   - return elements.size();
18   -}
19   -
20   -void
21   -OHArray::append(QPDFObjectHandle oh)
22   -{
23   - elements.push_back(oh.getObj());
24   -}
25   -
26   -void
27   -OHArray::append(std::shared_ptr<QPDFObject>&& obj)
28   -{
29   - elements.push_back(std::move(obj));
30   -}
31   -
32 14 QPDFObjectHandle
33 15 OHArray::at(size_t idx) const
34 16 {
... ... @@ -77,7 +59,7 @@ OHArray::insert(size_t idx, QPDFObjectHandle oh)
77 59 throw std::logic_error("bounds error inserting item to OHArray");
78 60 } else if (idx == elements.size()) {
79 61 // Allow inserting to the last position
80   - append(oh.getObj());
  62 + elements.push_back(oh.getObj());
81 63 } else {
82 64 int n = int(idx);
83 65 elements.insert(elements.cbegin() + n, oh.getObj());
... ...
libqpdf/QPDF_Array.cc
... ... @@ -93,7 +93,7 @@ QPDF_Array::unparse()
93 93 return result;
94 94 } else {
95 95 std::string result = "[ ";
96   - size_t size = elements.size();
  96 + size_t size = elements.elements.size();
97 97 for (size_t i = 0; i < size; ++i) {
98 98 result += elements.at(i).unparse();
99 99 result += " ";
... ... @@ -115,7 +115,7 @@ QPDF_Array::getJSON(int json_version)
115 115 return j;
116 116 } else {
117 117 JSON j = JSON::makeArray();
118   - size_t size = elements.size();
  118 + size_t size = elements.elements.size();
119 119 for (size_t i = 0; i < size; ++i) {
120 120 j.addArrayElement(elements.at(i).getJSON(json_version));
121 121 }
... ... @@ -131,7 +131,7 @@ QPDF_Array::getNItems() const
131 131 // a lot of code.
132 132 return QIntC::to_int(sp_elements.size());
133 133 } else {
134   - return QIntC::to_int(elements.size());
  134 + return QIntC::to_int(elements.elements.size());
135 135 }
136 136 }
137 137  
... ... @@ -145,7 +145,7 @@ QPDF_Array::getItem(int n) const
145 145 }
146 146 return sp_elements.at(QIntC::to_size(n));
147 147 } else {
148   - if ((n < 0) || (n >= QIntC::to_int(elements.size()))) {
  148 + if ((n < 0) || (n >= QIntC::to_int(elements.elements.size()))) {
149 149 throw std::logic_error(
150 150 "INTERNAL ERROR: bounds error accessing QPDF_Array element");
151 151 }
... ... @@ -162,7 +162,7 @@ QPDF_Array::getAsVector(std::vector&lt;QPDFObjectHandle&gt;&amp; v) const
162 162 v.push_back(sp_elements.at(i));
163 163 }
164 164 } else {
165   - size_t size = elements.size();
  165 + size_t size = elements.elements.size();
166 166 for (size_t i = 0; i < size; ++i) {
167 167 v.push_back(elements.at(i));
168 168 }
... ... @@ -190,7 +190,7 @@ QPDF_Array::setFromVector(std::vector&lt;QPDFObjectHandle&gt; const&amp; v)
190 190 } else {
191 191 elements = OHArray();
192 192 for (auto const& iter: v) {
193   - elements.append(iter);
  193 + elements.elements.push_back(iter.getObj());
194 194 }
195 195 }
196 196 }
... ... @@ -211,7 +211,7 @@ QPDF_Array::setFromVector(std::vector&lt;std::shared_ptr&lt;QPDFObject&gt;&gt;&amp;&amp; v)
211 211 } else {
212 212 elements = OHArray();
213 213 for (auto&& item: v) {
214   - elements.append(std::move(item));
  214 + elements.elements.push_back(std::move(item));
215 215 }
216 216 }
217 217 }
... ... @@ -228,7 +228,7 @@ QPDF_Array::insertItem(int at, QPDFObjectHandle const&amp; item)
228 228 sp_elements.insert(QIntC::to_size(at), item);
229 229 } else {
230 230 // As special case, also allow insert beyond the end
231   - if ((at < 0) || (at > QIntC::to_int(elements.size()))) {
  231 + if ((at < 0) || (at > QIntC::to_int(elements.elements.size()))) {
232 232 throw std::logic_error(
233 233 "INTERNAL ERROR: bounds error accessing QPDF_Array element");
234 234 }
... ... @@ -242,7 +242,7 @@ QPDF_Array::appendItem(QPDFObjectHandle const&amp; item)
242 242 if (sparse) {
243 243 sp_elements.append(item);
244 244 } else {
245   - elements.append(item);
  245 + elements.elements.push_back(item.getObj());
246 246 }
247 247 }
248 248  
... ...
libqpdf/qpdf/OHArray.hh
... ... @@ -12,9 +12,6 @@ class OHArray
12 12 {
13 13 public:
14 14 OHArray();
15   - size_t size() const;
16   - void append(QPDFObjectHandle oh);
17   - void append(std::shared_ptr<QPDFObject>&& obj);
18 15 QPDFObjectHandle at(size_t idx) const;
19 16 void setAt(size_t idx, QPDFObjectHandle oh);
20 17 void erase(size_t idx);
... ...