diff options
Diffstat (limited to 'libqpdf/QPDF_Array.cc')
-rw-r--r-- | libqpdf/QPDF_Array.cc | 13 |
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(); } } } |