Commit e186da17213826ae22b73584641d2e8cd10b24d5
1 parent
1c85e7ec
Remove SparseOHArray::at, setAt and append
Showing
3 changed files
with
4 additions
and
61 deletions
libqpdf/QPDF_Array.cc
| ... | ... | @@ -193,7 +193,7 @@ QPDF_Array::setAt(int at, QPDFObjectHandle const& oh) |
| 193 | 193 | } |
| 194 | 194 | checkOwnership(oh); |
| 195 | 195 | if (sparse) { |
| 196 | - sp_elements.setAt(at, oh); | |
| 196 | + sp_elements.elements[at] = oh.getObj(); | |
| 197 | 197 | } else { |
| 198 | 198 | elements[size_t(at)] = oh.getObj(); |
| 199 | 199 | } |
| ... | ... | @@ -206,7 +206,7 @@ QPDF_Array::setFromVector(std::vector<QPDFObjectHandle> const& v) |
| 206 | 206 | if (sparse) { |
| 207 | 207 | sp_elements = SparseOHArray(); |
| 208 | 208 | for (auto const& iter: v) { |
| 209 | - sp_elements.append(iter); | |
| 209 | + sp_elements.elements[sp_elements.n_elements++] = iter.getObj(); | |
| 210 | 210 | } |
| 211 | 211 | } else { |
| 212 | 212 | elements.resize(0); |
| ... | ... | @@ -224,10 +224,9 @@ QPDF_Array::setFromVector(std::vector<std::shared_ptr<QPDFObject>>&& v) |
| 224 | 224 | for (auto&& item: v) { |
| 225 | 225 | if (item->getTypeCode() != ::ot_null || |
| 226 | 226 | item->getObjGen().isIndirect()) { |
| 227 | - sp_elements.append(std::move(item)); | |
| 228 | - } else { | |
| 229 | - ++sp_elements.n_elements; | |
| 227 | + sp_elements.elements[sp_elements.n_elements] = std::move(item); | |
| 230 | 228 | } |
| 229 | + ++sp_elements.n_elements; | |
| 231 | 230 | } |
| 232 | 231 | } else { |
| 233 | 232 | elements = std::move(v); | ... | ... |
libqpdf/SparseOHArray.cc
| 1 | 1 | #include <qpdf/SparseOHArray.hh> |
| 2 | 2 | |
| 3 | -#include <stdexcept> | |
| 4 | - | |
| 5 | -static const QPDFObjectHandle null_oh = QPDFObjectHandle::newNull(); | |
| 6 | - | |
| 7 | -QPDFObjectHandle | |
| 8 | -SparseOHArray::at(int idx) const | |
| 9 | -{ | |
| 10 | - auto const& iter = elements.find(idx); | |
| 11 | - return iter == elements.end() ? null_oh : (*iter).second; | |
| 12 | -} | |
| 13 | - | |
| 14 | -void | |
| 15 | -SparseOHArray::remove_last() | |
| 16 | -{ | |
| 17 | - if (this->n_elements == 0) { | |
| 18 | - throw std::logic_error("INTERNAL ERROR: attempt to remove" | |
| 19 | - " last item from empty SparseOHArray"); | |
| 20 | - } | |
| 21 | - --this->n_elements; | |
| 22 | - this->elements.erase(this->n_elements); | |
| 23 | -} | |
| 24 | - | |
| 25 | 3 | void |
| 26 | 4 | SparseOHArray::disconnect() |
| 27 | 5 | { |
| ... | ... | @@ -42,15 +20,3 @@ SparseOHArray::copy() |
| 42 | 20 | } |
| 43 | 21 | return result; |
| 44 | 22 | } |
| 45 | - | |
| 46 | -SparseOHArray::const_iterator | |
| 47 | -SparseOHArray::begin() const | |
| 48 | -{ | |
| 49 | - return this->elements.begin(); | |
| 50 | -} | |
| 51 | - | |
| 52 | -SparseOHArray::const_iterator | |
| 53 | -SparseOHArray::end() const | |
| 54 | -{ | |
| 55 | - return this->elements.end(); | |
| 56 | -} | ... | ... |
libqpdf/qpdf/SparseOHArray.hh
| ... | ... | @@ -16,31 +16,9 @@ class SparseOHArray |
| 16 | 16 | { |
| 17 | 17 | return n_elements; |
| 18 | 18 | } |
| 19 | - void | |
| 20 | - append(QPDFObjectHandle oh) | |
| 21 | - { | |
| 22 | - elements[n_elements++] = oh.getObj(); | |
| 23 | - } | |
| 24 | - void | |
| 25 | - append(std::shared_ptr<QPDFObject>&& obj) | |
| 26 | - { | |
| 27 | - elements[n_elements++] = std::move(obj); | |
| 28 | - } | |
| 29 | - QPDFObjectHandle at(int idx) const; | |
| 30 | - void remove_last(); | |
| 31 | - void | |
| 32 | - setAt(int idx, QPDFObjectHandle oh) | |
| 33 | - { | |
| 34 | - elements[idx] = oh.getObj(); | |
| 35 | - } | |
| 36 | 19 | SparseOHArray copy(); |
| 37 | 20 | void disconnect(); |
| 38 | 21 | |
| 39 | - typedef std::map<int, std::shared_ptr<QPDFObject>>::const_iterator | |
| 40 | - const_iterator; | |
| 41 | - const_iterator begin() const; | |
| 42 | - const_iterator end() const; | |
| 43 | - | |
| 44 | 22 | private: |
| 45 | 23 | friend class QPDF_Array; |
| 46 | 24 | std::map<int, std::shared_ptr<QPDFObject>> elements; | ... | ... |