aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF_Array.cc
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2022-12-11 17:13:19 +0100
committerm-holger <m-holger@kubitscheck.org>2023-04-01 14:57:35 +0200
commita171ebb9427e41559efbeb1f144a19b73bb3eca6 (patch)
tree659e86942f25cf18479ca15541a99eda99332cda /libqpdf/QPDF_Array.cc
parent0aae54d3836107fdb9dc54faf0778bf262dd7e0a (diff)
downloadqpdf-a171ebb9427e41559efbeb1f144a19b73bb3eca6.tar.zst
Refactor QPDF_Array::disconnect
Diffstat (limited to 'libqpdf/QPDF_Array.cc')
-rw-r--r--libqpdf/QPDF_Array.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc
index afec05af..1f1ce55a 100644
--- a/libqpdf/QPDF_Array.cc
+++ b/libqpdf/QPDF_Array.cc
@@ -116,11 +116,16 @@ void
QPDF_Array::disconnect()
{
if (sparse) {
- sp_elements.disconnect();
+ for (auto& item: sp_elements.elements) {
+ auto& obj = item.second;
+ if (!obj->getObjGen().isIndirect()) {
+ obj->disconnect();
+ }
+ }
} else {
- for (auto const& iter: elements) {
- if (iter) {
- QPDFObjectHandle::DisconnectAccess::disconnect(iter);
+ for (auto& obj: elements) {
+ if (!obj->getObjGen().isIndirect()) {
+ obj->disconnect();
}
}
}