From 6295da436f77ef0e1016dafbb4172452db65ac0b Mon Sep 17 00:00:00 2001 From: m-holger Date: Wed, 29 Mar 2023 15:45:12 +0100 Subject: Remove SparseOHArray::insert --- libqpdf/QPDF_Array.cc | 14 +++++++++++++- libqpdf/SparseOHArray.cc | 23 ----------------------- libqpdf/qpdf/SparseOHArray.hh | 1 - 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(); -- cgit v1.2.3-54-g00ecf