2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-06-22 12:04:53 +00:00

Remove temporary OHArray::disconnect and setAt

This commit is contained in:
m-holger 2023-03-25 17:23:19 +00:00
parent 1367226002
commit 0db65e7912
4 changed files with 12 additions and 26 deletions

View File

@ -1494,14 +1494,14 @@ class QPDFObjectHandle
// disconnected(). // disconnected().
class DisconnectAccess class DisconnectAccess
{ {
friend class QPDF_Array;
friend class QPDF_Dictionary; friend class QPDF_Dictionary;
friend class QPDF_Stream; friend class QPDF_Stream;
friend class SparseOHArray; friend class SparseOHArray;
friend class OHArray;
private: private:
static void static void
disconnect(QPDFObjectHandle& o) disconnect(QPDFObjectHandle o)
{ {
o.disconnect(); o.disconnect();
} }

View File

@ -11,26 +11,6 @@ OHArray::OHArray()
{ {
} }
void
OHArray::disconnect()
{
for (auto const& iter: elements) {
if (iter) {
QPDFObjectHandle oh = iter;
QPDFObjectHandle::DisconnectAccess::disconnect(oh);
}
}
}
void
OHArray::setAt(size_t idx, QPDFObjectHandle oh)
{
if (idx >= elements.size()) {
throw std::logic_error("bounds error setting item in OHArray");
}
elements[idx] = oh.getObj();
}
void void
OHArray::erase(size_t idx) OHArray::erase(size_t idx)
{ {

View File

@ -77,7 +77,11 @@ QPDF_Array::disconnect()
if (sparse) { if (sparse) {
sp_elements.disconnect(); sp_elements.disconnect();
} else { } 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) { if (sparse) {
sp_elements.setAt(QIntC::to_size(n), oh); sp_elements.setAt(QIntC::to_size(n), oh);
} else { } 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();
} }
} }

View File

@ -12,11 +12,9 @@ class OHArray
{ {
public: public:
OHArray(); OHArray();
void setAt(size_t idx, QPDFObjectHandle oh);
void erase(size_t idx); void erase(size_t idx);
void insert(size_t idx, QPDFObjectHandle oh); void insert(size_t idx, QPDFObjectHandle oh);
OHArray copy(); OHArray copy();
void disconnect();
private: private:
friend class QPDF_Array; friend class QPDF_Array;