Commit a89d8a0677f726ea029a67db164e0116971ffafc
1 parent
e83f3308
Refactor QPDF_Array in preparation for using SparseOHArray
Showing
3 changed files
with
24 additions
and
15 deletions
libqpdf/QPDFObjectHandle.cc
| @@ -722,7 +722,7 @@ QPDFObjectHandle::getArrayAsVector() | @@ -722,7 +722,7 @@ QPDFObjectHandle::getArrayAsVector() | ||
| 722 | std::vector<QPDFObjectHandle> result; | 722 | std::vector<QPDFObjectHandle> result; |
| 723 | if (isArray()) | 723 | if (isArray()) |
| 724 | { | 724 | { |
| 725 | - result = dynamic_cast<QPDF_Array*>(m->obj.getPointer())->getAsVector(); | 725 | + dynamic_cast<QPDF_Array*>(m->obj.getPointer())->getAsVector(result); |
| 726 | } | 726 | } |
| 727 | else | 727 | else |
| 728 | { | 728 | { |
libqpdf/QPDF_Array.cc
| @@ -3,9 +3,9 @@ | @@ -3,9 +3,9 @@ | ||
| 3 | #include <qpdf/QIntC.hh> | 3 | #include <qpdf/QIntC.hh> |
| 4 | #include <stdexcept> | 4 | #include <stdexcept> |
| 5 | 5 | ||
| 6 | -QPDF_Array::QPDF_Array(std::vector<QPDFObjectHandle> const& items) : | ||
| 7 | - items(items) | 6 | +QPDF_Array::QPDF_Array(std::vector<QPDFObjectHandle> const& v) |
| 8 | { | 7 | { |
| 8 | + setFromVector(v); | ||
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | QPDF_Array::~QPDF_Array() | 11 | QPDF_Array::~QPDF_Array() |
| @@ -26,10 +26,10 @@ std::string | @@ -26,10 +26,10 @@ std::string | ||
| 26 | QPDF_Array::unparse() | 26 | QPDF_Array::unparse() |
| 27 | { | 27 | { |
| 28 | std::string result = "[ "; | 28 | std::string result = "[ "; |
| 29 | - for (std::vector<QPDFObjectHandle>::iterator iter = this->items.begin(); | ||
| 30 | - iter != this->items.end(); ++iter) | 29 | + size_t size = this->items.size(); |
| 30 | + for (size_t i = 0; i < size; ++i) | ||
| 31 | { | 31 | { |
| 32 | - result += (*iter).unparse(); | 32 | + result += this->items.at(i).unparse(); |
| 33 | result += " "; | 33 | result += " "; |
| 34 | } | 34 | } |
| 35 | result += "]"; | 35 | result += "]"; |
| @@ -40,10 +40,10 @@ JSON | @@ -40,10 +40,10 @@ JSON | ||
| 40 | QPDF_Array::getJSON() | 40 | QPDF_Array::getJSON() |
| 41 | { | 41 | { |
| 42 | JSON j = JSON::makeArray(); | 42 | JSON j = JSON::makeArray(); |
| 43 | - for (std::vector<QPDFObjectHandle>::iterator iter = this->items.begin(); | ||
| 44 | - iter != this->items.end(); ++iter) | 43 | + size_t size = this->items.size(); |
| 44 | + for (size_t i = 0; i < size; ++i) | ||
| 45 | { | 45 | { |
| 46 | - j.addArrayElement((*iter).getJSON()); | 46 | + j.addArrayElement(this->items.at(i).getJSON()); |
| 47 | } | 47 | } |
| 48 | return j; | 48 | return j; |
| 49 | } | 49 | } |
| @@ -85,10 +85,14 @@ QPDF_Array::getItem(int n) const | @@ -85,10 +85,14 @@ QPDF_Array::getItem(int n) const | ||
| 85 | return this->items.at(QIntC::to_size(n)); | 85 | return this->items.at(QIntC::to_size(n)); |
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | -std::vector<QPDFObjectHandle> const& | ||
| 89 | -QPDF_Array::getAsVector() const | 88 | +void |
| 89 | +QPDF_Array::getAsVector(std::vector<QPDFObjectHandle>& v) const | ||
| 90 | { | 90 | { |
| 91 | - return this->items; | 91 | + size_t size = this->items.size(); |
| 92 | + for (size_t i = 0; i < size; ++i) | ||
| 93 | + { | ||
| 94 | + v.push_back(this->items.at(i)); | ||
| 95 | + } | ||
| 92 | } | 96 | } |
| 93 | 97 | ||
| 94 | void | 98 | void |
| @@ -100,9 +104,14 @@ QPDF_Array::setItem(int n, QPDFObjectHandle const& oh) | @@ -100,9 +104,14 @@ QPDF_Array::setItem(int n, QPDFObjectHandle const& oh) | ||
| 100 | } | 104 | } |
| 101 | 105 | ||
| 102 | void | 106 | void |
| 103 | -QPDF_Array::setFromVector(std::vector<QPDFObjectHandle> const& items) | 107 | +QPDF_Array::setFromVector(std::vector<QPDFObjectHandle> const& v) |
| 104 | { | 108 | { |
| 105 | - this->items = items; | 109 | + this->items.clear(); |
| 110 | + for (std::vector<QPDFObjectHandle>::const_iterator iter = v.begin(); | ||
| 111 | + iter != v.end(); ++iter) | ||
| 112 | + { | ||
| 113 | + this->items.push_back(*iter); | ||
| 114 | + } | ||
| 106 | } | 115 | } |
| 107 | 116 | ||
| 108 | void | 117 | void |
libqpdf/qpdf/QPDF_Array.hh
| @@ -19,7 +19,7 @@ class QPDF_Array: public QPDFObject | @@ -19,7 +19,7 @@ class QPDF_Array: public QPDFObject | ||
| 19 | 19 | ||
| 20 | int getNItems() const; | 20 | int getNItems() const; |
| 21 | QPDFObjectHandle getItem(int n) const; | 21 | QPDFObjectHandle getItem(int n) const; |
| 22 | - std::vector<QPDFObjectHandle> const& getAsVector() const; | 22 | + void getAsVector(std::vector<QPDFObjectHandle>&) const; |
| 23 | 23 | ||
| 24 | void setItem(int, QPDFObjectHandle const&); | 24 | void setItem(int, QPDFObjectHandle const&); |
| 25 | void setFromVector(std::vector<QPDFObjectHandle> const& items); | 25 | void setFromVector(std::vector<QPDFObjectHandle> const& items); |