From bfda94151950c9dfd930e1d780d6f16b2dfd4501 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 2 Apr 2020 20:10:31 -0400 Subject: Use an unordered map for SparseOHArray for efficiency This was added in C++11. --- libqpdf/SparseOHArray.cc | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'libqpdf/SparseOHArray.cc') 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::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::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 dest; - for (std::map::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 dest; - for (std::map::iterator iter = - this->elements.begin(); + decltype(this->elements) dest; + for (auto iter = this->elements.begin(); iter != this->elements.end(); ++iter) { if ((*iter).first < idx) -- cgit v1.2.3-54-g00ecf