aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-03-29 17:39:34 +0200
committerm-holger <m-holger@kubitscheck.org>2023-04-01 14:57:15 +0200
commite186da17213826ae22b73584641d2e8cd10b24d5 (patch)
tree11ff4c74a32d03fafaa1abcb68ec85a890fa40d8 /libqpdf
parent1c85e7ece4d832b114f91c1858ba2b24964d5d9e (diff)
downloadqpdf-e186da17213826ae22b73584641d2e8cd10b24d5.tar.zst
Remove SparseOHArray::at, setAt and append
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDF_Array.cc9
-rw-r--r--libqpdf/SparseOHArray.cc34
-rw-r--r--libqpdf/qpdf/SparseOHArray.hh22
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<QPDFObjectHandle> 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<std::shared_ptr<QPDFObject>>&& 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 <qpdf/SparseOHArray.hh>
-#include <stdexcept>
-
-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<QPDFObject>&& 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<int, std::shared_ptr<QPDFObject>>::const_iterator
- const_iterator;
- const_iterator begin() const;
- const_iterator end() const;
-
private:
friend class QPDF_Array;
std::map<int, std::shared_ptr<QPDFObject>> elements;