From e186da17213826ae22b73584641d2e8cd10b24d5 Mon Sep 17 00:00:00 2001 From: m-holger Date: Wed, 29 Mar 2023 16:39:34 +0100 Subject: Remove SparseOHArray::at, setAt and append --- libqpdf/QPDF_Array.cc | 9 ++++----- libqpdf/SparseOHArray.cc | 34 ---------------------------------- libqpdf/qpdf/SparseOHArray.hh | 22 ---------------------- 3 files changed, 4 insertions(+), 61 deletions(-) diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc index fbaf776f..3ed18bf4 100644 --- a/libqpdf/QPDF_Array.cc +++ b/libqpdf/QPDF_Array.cc @@ -193,7 +193,7 @@ QPDF_Array::setAt(int at, QPDFObjectHandle const& oh) } checkOwnership(oh); if (sparse) { - sp_elements.setAt(at, oh); + sp_elements.elements[at] = oh.getObj(); } else { elements[size_t(at)] = oh.getObj(); } @@ -206,7 +206,7 @@ QPDF_Array::setFromVector(std::vector const& v) if (sparse) { sp_elements = SparseOHArray(); for (auto const& iter: v) { - sp_elements.append(iter); + sp_elements.elements[sp_elements.n_elements++] = iter.getObj(); } } else { elements.resize(0); @@ -224,10 +224,9 @@ QPDF_Array::setFromVector(std::vector>&& v) for (auto&& item: v) { if (item->getTypeCode() != ::ot_null || item->getObjGen().isIndirect()) { - sp_elements.append(std::move(item)); - } else { - ++sp_elements.n_elements; + sp_elements.elements[sp_elements.n_elements] = std::move(item); } + ++sp_elements.n_elements; } } else { elements = std::move(v); diff --git a/libqpdf/SparseOHArray.cc b/libqpdf/SparseOHArray.cc index e0c2d41d..6a1c976a 100644 --- a/libqpdf/SparseOHArray.cc +++ b/libqpdf/SparseOHArray.cc @@ -1,27 +1,5 @@ #include -#include - -static const QPDFObjectHandle null_oh = QPDFObjectHandle::newNull(); - -QPDFObjectHandle -SparseOHArray::at(int idx) const -{ - auto const& iter = elements.find(idx); - return iter == elements.end() ? null_oh : (*iter).second; -} - -void -SparseOHArray::remove_last() -{ - if (this->n_elements == 0) { - throw std::logic_error("INTERNAL ERROR: attempt to remove" - " last item from empty SparseOHArray"); - } - --this->n_elements; - this->elements.erase(this->n_elements); -} - void SparseOHArray::disconnect() { @@ -42,15 +20,3 @@ SparseOHArray::copy() } return result; } - -SparseOHArray::const_iterator -SparseOHArray::begin() const -{ - return this->elements.begin(); -} - -SparseOHArray::const_iterator -SparseOHArray::end() const -{ - return this->elements.end(); -} diff --git a/libqpdf/qpdf/SparseOHArray.hh b/libqpdf/qpdf/SparseOHArray.hh index f1a1011e..1b31f266 100644 --- a/libqpdf/qpdf/SparseOHArray.hh +++ b/libqpdf/qpdf/SparseOHArray.hh @@ -16,31 +16,9 @@ class SparseOHArray { return n_elements; } - void - append(QPDFObjectHandle oh) - { - elements[n_elements++] = oh.getObj(); - } - void - append(std::shared_ptr&& obj) - { - elements[n_elements++] = std::move(obj); - } - QPDFObjectHandle at(int idx) const; - void remove_last(); - void - setAt(int idx, QPDFObjectHandle oh) - { - elements[idx] = oh.getObj(); - } SparseOHArray copy(); void disconnect(); - typedef std::map>::const_iterator - const_iterator; - const_iterator begin() const; - const_iterator end() const; - private: friend class QPDF_Array; std::map> elements; -- cgit v1.2.3-54-g00ecf