diff options
author | m-holger <m-holger@kubitscheck.org> | 2023-03-25 18:23:19 +0100 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2023-03-29 14:06:26 +0200 |
commit | 0db65e79120e66069a37906845a984457b711b6f (patch) | |
tree | 16f3aef82d28ff1c464ca2d0b3e39b90382b7b6c /libqpdf/QPDF_Array.cc | |
parent | 1367226002d48bc0d67c08cae498fd92dad41977 (diff) | |
download | qpdf-0db65e79120e66069a37906845a984457b711b6f.tar.zst |
Remove temporary OHArray::disconnect and setAt
Diffstat (limited to 'libqpdf/QPDF_Array.cc')
-rw-r--r-- | libqpdf/QPDF_Array.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc index b86c3f0a..ce08332a 100644 --- a/libqpdf/QPDF_Array.cc +++ b/libqpdf/QPDF_Array.cc @@ -77,7 +77,11 @@ QPDF_Array::disconnect() if (sparse) { sp_elements.disconnect(); } else { - elements.disconnect(); + for (auto const& iter: elements.elements) { + if (iter) { + QPDFObjectHandle::DisconnectAccess::disconnect(iter); + } + } } } @@ -176,7 +180,11 @@ QPDF_Array::setItem(int n, QPDFObjectHandle const& oh) if (sparse) { sp_elements.setAt(QIntC::to_size(n), oh); } else { - elements.setAt(QIntC::to_size(n), oh); + size_t idx = size_t(n); + if (n < 0 || idx >= elements.elements.size()) { + throw std::logic_error("bounds error setting item in QPDF_Array"); + } + elements.elements[idx] = oh.getObj(); } } |