summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libqpdf/QPDFObjectHandle.cc6
-rw-r--r--libqpdf/QPDF_Array.cc5
-rw-r--r--libqpdf/SparseOHArray.cc18
-rw-r--r--libqpdf/qpdf/QPDF_Array.hh2
-rw-r--r--libqpdf/qpdf/SparseOHArray.hh12
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);