diff options
author | Jay Berkenbilt <ejb@ql.org> | 2020-04-03 02:10:31 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2020-04-03 18:16:24 +0200 |
commit | bfda94151950c9dfd930e1d780d6f16b2dfd4501 (patch) | |
tree | 191007f650b1d7edd97a14d44ee7170484fb7d63 /libqpdf/SparseOHArray.cc | |
parent | ee271fd2f21714d6ef8cb3ebbc158de9dac24c9f (diff) | |
download | qpdf-bfda94151950c9dfd930e1d780d6f16b2dfd4501.tar.zst |
Use an unordered map for SparseOHArray for efficiency
This was added in C++11.
Diffstat (limited to 'libqpdf/SparseOHArray.cc')
-rw-r--r-- | libqpdf/SparseOHArray.cc | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/libqpdf/SparseOHArray.cc b/libqpdf/SparseOHArray.cc index 05b44ee0..48ddce0f 100644 --- a/libqpdf/SparseOHArray.cc +++ b/libqpdf/SparseOHArray.cc @@ -30,8 +30,7 @@ SparseOHArray::at(size_t idx) const throw std::logic_error( "INTERNAL ERROR: bounds error accessing SparseOHArray element"); } - std::map<size_t, QPDFObjectHandle>::const_iterator iter = - this->elements.find(idx); + auto iter = this->elements.find(idx); if (iter == this->elements.end()) { return QPDFObjectHandle::newNull(); @@ -58,8 +57,7 @@ SparseOHArray::remove_last() void SparseOHArray::releaseResolved() { - for (std::map<size_t, QPDFObjectHandle>::iterator iter = - this->elements.begin(); + for (auto iter = this->elements.begin(); iter != this->elements.end(); ++iter) { QPDFObjectHandle::ReleaseResolver::releaseResolved((*iter).second); @@ -90,9 +88,8 @@ SparseOHArray::erase(size_t idx) { throw std::logic_error("bounds error erasing item from SparseOHArray"); } - std::map<size_t, QPDFObjectHandle> dest; - for (std::map<size_t, QPDFObjectHandle>::iterator iter = - this->elements.begin(); + decltype(this->elements) dest; + for (auto iter = this->elements.begin(); iter != this->elements.end(); ++iter) { if ((*iter).first < idx) @@ -122,9 +119,8 @@ SparseOHArray::insert(size_t idx, QPDFObjectHandle oh) } else { - std::map<size_t, QPDFObjectHandle> dest; - for (std::map<size_t, QPDFObjectHandle>::iterator iter = - this->elements.begin(); + decltype(this->elements) dest; + for (auto iter = this->elements.begin(); iter != this->elements.end(); ++iter) { if ((*iter).first < idx) |