diff options
author | Jay Berkenbilt <ejb@ql.org> | 2020-04-09 02:14:04 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2020-04-09 02:45:26 +0200 |
commit | 1a7d3700a665a5ae29c8bab67ddc7fee7040b731 (patch) | |
tree | 625e79f255f5c57ea438816cb7714628ca0c66a2 /libqpdf/SparseOHArray.cc | |
parent | b89b1d772db935ed36b8abe8a21ee6468ada3d23 (diff) | |
download | qpdf-1a7d3700a665a5ae29c8bab67ddc7fee7040b731.tar.zst |
Fix unnecessary copies in auto iter (fixes #426)
Also switch to colon-style iteration in some cases. Thanks to Dean
Scarff for drawing this to my attention after detecting some
unnecessary copies with
https://clang.llvm.org/extra/clang-tidy/checks/performance-for-range-copy.html
Diffstat (limited to 'libqpdf/SparseOHArray.cc')
-rw-r--r-- | libqpdf/SparseOHArray.cc | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/libqpdf/SparseOHArray.cc b/libqpdf/SparseOHArray.cc index 48ddce0f..c8aaefa8 100644 --- a/libqpdf/SparseOHArray.cc +++ b/libqpdf/SparseOHArray.cc @@ -30,7 +30,7 @@ SparseOHArray::at(size_t idx) const throw std::logic_error( "INTERNAL ERROR: bounds error accessing SparseOHArray element"); } - auto iter = this->elements.find(idx); + auto const& iter = this->elements.find(idx); if (iter == this->elements.end()) { return QPDFObjectHandle::newNull(); @@ -57,10 +57,9 @@ SparseOHArray::remove_last() void SparseOHArray::releaseResolved() { - for (auto iter = this->elements.begin(); - iter != this->elements.end(); ++iter) + for (auto iter: this->elements) { - QPDFObjectHandle::ReleaseResolver::releaseResolved((*iter).second); + QPDFObjectHandle::ReleaseResolver::releaseResolved(iter.second); } } @@ -89,16 +88,15 @@ SparseOHArray::erase(size_t idx) throw std::logic_error("bounds error erasing item from SparseOHArray"); } decltype(this->elements) dest; - for (auto iter = this->elements.begin(); - iter != this->elements.end(); ++iter) + for (auto const& iter: this->elements) { - if ((*iter).first < idx) + if (iter.first < idx) { - dest.insert(*iter); + dest.insert(iter); } - else if ((*iter).first > idx) + else if (iter.first > idx) { - dest[(*iter).first - 1] = (*iter).second; + dest[iter.first - 1] = iter.second; } } this->elements = dest; @@ -120,16 +118,15 @@ SparseOHArray::insert(size_t idx, QPDFObjectHandle oh) else { decltype(this->elements) dest; - for (auto iter = this->elements.begin(); - iter != this->elements.end(); ++iter) + for (auto const& iter: this->elements) { - if ((*iter).first < idx) + if (iter.first < idx) { - dest.insert(*iter); + dest.insert(iter); } else { - dest[(*iter).first + 1] = (*iter).second; + dest[iter.first + 1] = iter.second; } } this->elements = dest; |