Commit 1c85e7ece4d832b114f91c1858ba2b24964d5d9e

Authored by m-holger
1 parent 6295da43

Remove SparseOHArray::erase

libqpdf/QPDF_Array.cc
... ... @@ -284,7 +284,20 @@ QPDF_Array::erase(int at)
284 284 return false;
285 285 }
286 286 if (sparse) {
287   - sp_elements.erase(at);
  287 + auto end = sp_elements.elements.end();
  288 + if (auto iter = sp_elements.elements.lower_bound(at); iter != end) {
  289 + if (iter->first == at) {
  290 + iter++;
  291 + sp_elements.elements.erase(at);
  292 + }
  293 +
  294 + while (iter != end) {
  295 + auto nh = sp_elements.elements.extract(iter++);
  296 + --nh.key();
  297 + sp_elements.elements.insert(std::move(nh));
  298 + }
  299 + }
  300 + --sp_elements.n_elements;
288 301 } else {
289 302 elements.erase(elements.cbegin() + at);
290 303 }
... ...
libqpdf/SparseOHArray.cc
... ... @@ -30,25 +30,6 @@ SparseOHArray::disconnect()
30 30 }
31 31 }
32 32  
33   -void
34   -SparseOHArray::erase(int at)
35   -{
36   - auto end = elements.end();
37   - if (auto iter = elements.lower_bound(at); iter != end) {
38   - if (iter->first == at) {
39   - iter++;
40   - elements.erase(at);
41   - }
42   -
43   - while (iter != end) {
44   - auto nh = elements.extract(iter++);
45   - --nh.key();
46   - elements.insert(std::move(nh));
47   - }
48   - }
49   - --n_elements;
50   -}
51   -
52 33 SparseOHArray
53 34 SparseOHArray::copy()
54 35 {
... ...
libqpdf/qpdf/SparseOHArray.hh
... ... @@ -33,7 +33,6 @@ class SparseOHArray
33 33 {
34 34 elements[idx] = oh.getObj();
35 35 }
36   - void erase(int idx);
37 36 SparseOHArray copy();
38 37 void disconnect();
39 38  
... ...