aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-03-29 16:45:12 +0200
committerm-holger <m-holger@kubitscheck.org>2023-04-01 14:56:47 +0200
commit6295da436f77ef0e1016dafbb4172452db65ac0b (patch)
treeca39568f6571cd9f7e0d90590444dc701b9218ec
parent73023bcb5d0705a8e914ae7586aa2f417a82d9a7 (diff)
downloadqpdf-6295da436f77ef0e1016dafbb4172452db65ac0b.tar.zst
Remove SparseOHArray::insert
-rw-r--r--libqpdf/QPDF_Array.cc14
-rw-r--r--libqpdf/SparseOHArray.cc23
-rw-r--r--libqpdf/qpdf/SparseOHArray.hh1
3 files changed, 13 insertions, 25 deletions
diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc
index d7505468..320a1ab7 100644
--- a/libqpdf/QPDF_Array.cc
+++ b/libqpdf/QPDF_Array.cc
@@ -246,7 +246,19 @@ QPDF_Array::insert(int at, QPDFObjectHandle const& item)
} else {
checkOwnership(item);
if (sparse) {
- sp_elements.insert(at, item);
+ auto iter = sp_elements.elements.crbegin();
+ while (iter != sp_elements.elements.crend()) {
+ auto key = (iter++)->first;
+ if (key >= at) {
+ auto nh = sp_elements.elements.extract(key);
+ ++nh.key();
+ sp_elements.elements.insert(std::move(nh));
+ } else {
+ break;
+ }
+ }
+ sp_elements.elements[at] = item.getObj();
+ ++sp_elements.n_elements;
} else {
elements.insert(elements.cbegin() + at, item.getObj());
}
diff --git a/libqpdf/SparseOHArray.cc b/libqpdf/SparseOHArray.cc
index 9904af1b..390f942a 100644
--- a/libqpdf/SparseOHArray.cc
+++ b/libqpdf/SparseOHArray.cc
@@ -49,29 +49,6 @@ SparseOHArray::erase(int at)
--n_elements;
}
-void
-SparseOHArray::insert(int idx, QPDFObjectHandle oh)
-{
- if (idx == n_elements) {
- // Allow inserting to the last position
- append(oh);
- } else {
- auto iter = elements.crbegin();
- while (iter != elements.crend()) {
- auto key = (iter++)->first;
- if (key >= idx) {
- auto nh = elements.extract(key);
- ++nh.key();
- elements.insert(std::move(nh));
- } else {
- break;
- }
- }
- elements[idx] = oh.getObj();
- ++n_elements;
- }
-}
-
SparseOHArray
SparseOHArray::copy()
{
diff --git a/libqpdf/qpdf/SparseOHArray.hh b/libqpdf/qpdf/SparseOHArray.hh
index 19aa49f0..8adffb30 100644
--- a/libqpdf/qpdf/SparseOHArray.hh
+++ b/libqpdf/qpdf/SparseOHArray.hh
@@ -34,7 +34,6 @@ class SparseOHArray
elements[idx] = oh.getObj();
}
void erase(int idx);
- void insert(int idx, QPDFObjectHandle oh);
SparseOHArray copy();
void disconnect();