Refactor QPDF_Array::disconnect

This commit is contained in:
m-holger 2022-12-11 16:13:19 +00:00
parent 0aae54d383
commit a171ebb942
4 changed files with 9 additions and 15 deletions

View File

@ -1494,10 +1494,8 @@ class QPDFObjectHandle
// disconnected().
class DisconnectAccess
{
friend class QPDF_Array;
friend class QPDF_Dictionary;
friend class QPDF_Stream;
friend class SparseOHArray;
private:
static void

View File

@ -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();
}
}
}

View File

@ -1,13 +1,5 @@
#include <qpdf/SparseOHArray.hh>
void
SparseOHArray::disconnect()
{
for (auto& iter: this->elements) {
QPDFObjectHandle::DisconnectAccess::disconnect(iter.second);
}
}
SparseOHArray
SparseOHArray::copy()
{

View File

@ -17,7 +17,6 @@ class SparseOHArray
return n_elements;
}
SparseOHArray copy();
void disconnect();
private:
friend class QPDF_Array;