aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF_Array.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-08-18 01:01:32 +0200
committerJay Berkenbilt <ejb@ql.org>2019-08-18 05:02:41 +0200
commita89d8a0677f726ea029a67db164e0116971ffafc (patch)
treeb6682ab35ae99a130b31832e2f6581c50d898075 /libqpdf/QPDF_Array.cc
parente83f3308fbccd34959d325b830118eafe441fe48 (diff)
downloadqpdf-a89d8a0677f726ea029a67db164e0116971ffafc.tar.zst
Refactor QPDF_Array in preparation for using SparseOHArray
Diffstat (limited to 'libqpdf/QPDF_Array.cc')
-rw-r--r--libqpdf/QPDF_Array.cc35
1 files changed, 22 insertions, 13 deletions
diff --git a/libqpdf/QPDF_Array.cc b/libqpdf/QPDF_Array.cc
index c22143a1..a912b2bd 100644
--- a/libqpdf/QPDF_Array.cc
+++ b/libqpdf/QPDF_Array.cc
@@ -3,9 +3,9 @@
#include <qpdf/QIntC.hh>
#include <stdexcept>
-QPDF_Array::QPDF_Array(std::vector<QPDFObjectHandle> const& items) :
- items(items)
+QPDF_Array::QPDF_Array(std::vector<QPDFObjectHandle> const& v)
{
+ setFromVector(v);
}
QPDF_Array::~QPDF_Array()
@@ -26,10 +26,10 @@ std::string
QPDF_Array::unparse()
{
std::string result = "[ ";
- for (std::vector<QPDFObjectHandle>::iterator iter = this->items.begin();
- iter != this->items.end(); ++iter)
+ size_t size = this->items.size();
+ for (size_t i = 0; i < size; ++i)
{
- result += (*iter).unparse();
+ result += this->items.at(i).unparse();
result += " ";
}
result += "]";
@@ -40,10 +40,10 @@ JSON
QPDF_Array::getJSON()
{
JSON j = JSON::makeArray();
- for (std::vector<QPDFObjectHandle>::iterator iter = this->items.begin();
- iter != this->items.end(); ++iter)
+ size_t size = this->items.size();
+ for (size_t i = 0; i < size; ++i)
{
- j.addArrayElement((*iter).getJSON());
+ j.addArrayElement(this->items.at(i).getJSON());
}
return j;
}
@@ -85,10 +85,14 @@ QPDF_Array::getItem(int n) const
return this->items.at(QIntC::to_size(n));
}
-std::vector<QPDFObjectHandle> const&
-QPDF_Array::getAsVector() const
+void
+QPDF_Array::getAsVector(std::vector<QPDFObjectHandle>& v) const
{
- return this->items;
+ size_t size = this->items.size();
+ for (size_t i = 0; i < size; ++i)
+ {
+ v.push_back(this->items.at(i));
+ }
}
void
@@ -100,9 +104,14 @@ QPDF_Array::setItem(int n, QPDFObjectHandle const& oh)
}
void
-QPDF_Array::setFromVector(std::vector<QPDFObjectHandle> const& items)
+QPDF_Array::setFromVector(std::vector<QPDFObjectHandle> const& v)
{
- this->items = items;
+ this->items.clear();
+ for (std::vector<QPDFObjectHandle>::const_iterator iter = v.begin();
+ iter != v.end(); ++iter)
+ {
+ this->items.push_back(*iter);
+ }
}
void