diff options
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 6 | ||||
-rw-r--r-- | libqpdf/QPDF_Array.cc | 5 | ||||
-rw-r--r-- | libqpdf/SparseOHArray.cc | 18 | ||||
-rw-r--r-- | libqpdf/qpdf/QPDF_Array.hh | 2 | ||||
-rw-r--r-- | libqpdf/qpdf/SparseOHArray.hh | 12 |
5 files changed, 16 insertions, 27 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index e08c675d..0c4d45ae 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -951,10 +951,8 @@ QPDFObjectHandle::insertItemAndGetNew(int at, QPDFObjectHandle const& item) void QPDFObjectHandle::appendItem(QPDFObjectHandle const& item) { - auto array = asArray(); - if (array) { - checkOwnership(item); - array->appendItem(item); + if (auto array = asArray()) { + array->push_back(item); } else { typeWarning("array", "ignoring attempt to append item"); QTC::TC("qpdf", "QPDFObjectHandle array ignoring append item"); diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc index def40e9b..5a80cdf5 100644 --- a/libqpdf/QPDF_Array.cc +++ b/libqpdf/QPDF_Array.cc @@ -264,10 +264,11 @@ QPDF_Array::insertItem(int at, QPDFObjectHandle const& item) } void -QPDF_Array::appendItem(QPDFObjectHandle const& item) +QPDF_Array::push_back(QPDFObjectHandle const& item) { + checkOwnership(item); if (sparse) { - sp_elements.append(item); + sp_elements.elements[sp_elements.n_elements++] = item.getObj(); } else { elements.push_back(item.getObj()); } diff --git a/libqpdf/SparseOHArray.cc b/libqpdf/SparseOHArray.cc index c82bf145..48716deb 100644 --- a/libqpdf/SparseOHArray.cc +++ b/libqpdf/SparseOHArray.cc @@ -4,24 +4,6 @@ static const QPDFObjectHandle null_oh = QPDFObjectHandle::newNull(); -void -SparseOHArray::append(QPDFObjectHandle oh) -{ - if (!oh.isDirectNull()) { - this->elements[this->n_elements] = oh.getObj(); - } - ++this->n_elements; -} - -void -SparseOHArray::append(std::shared_ptr<QPDFObject>&& obj) -{ - if (obj->getTypeCode() != ::ot_null || !obj->getObjGen().isIndirect()) { - this->elements[this->n_elements] = std::move(obj); - } - ++this->n_elements; -} - QPDFObjectHandle SparseOHArray::at(int idx) const { diff --git a/libqpdf/qpdf/QPDF_Array.hh b/libqpdf/qpdf/QPDF_Array.hh index b27ce122..61f14d0f 100644 --- a/libqpdf/qpdf/QPDF_Array.hh +++ b/libqpdf/qpdf/QPDF_Array.hh @@ -34,7 +34,7 @@ class QPDF_Array: public QPDFValue void setFromVector(std::vector<QPDFObjectHandle> const& items); void setFromVector(std::vector<std::shared_ptr<QPDFObject>>&& items); void insertItem(int at, QPDFObjectHandle const& item); - void appendItem(QPDFObjectHandle const& item); + void push_back(QPDFObjectHandle const& item); void eraseItem(int at); private: diff --git a/libqpdf/qpdf/SparseOHArray.hh b/libqpdf/qpdf/SparseOHArray.hh index 80de95e5..f2872618 100644 --- a/libqpdf/qpdf/SparseOHArray.hh +++ b/libqpdf/qpdf/SparseOHArray.hh @@ -16,8 +16,16 @@ class SparseOHArray { return n_elements; } - void append(QPDFObjectHandle oh); - void append(std::shared_ptr<QPDFObject>&& obj); + void + append(QPDFObjectHandle oh) + { + elements[n_elements++] = oh.getObj(); + } + void + append(std::shared_ptr<QPDFObject>&& obj) + { + elements[n_elements++] = std::move(obj); + } QPDFObjectHandle at(int idx) const; void remove_last(); void setAt(int idx, QPDFObjectHandle oh); |