1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
From e286fcebfbbfe59e53acd1c2d45a48c9bb87474f Mon Sep 17 00:00:00 2001
From: Raimondas Galvelis <r.galvelis@acellera.com>
Date: Fri, 31 Aug 2018 22:01:30 +0200
Subject: [PATCH] Fix list decrement in psi::DFHelper::identify_order
---
psi4/src/psi4/lib3index/dfhelper.cc | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
Index: psi4/psi4/src/psi4/lib3index/dfhelper.cc
===================================================================
--- psi4.orig/psi4/src/psi4/lib3index/dfhelper.cc
+++ psi4/psi4/src/psi4/lib3index/dfhelper.cc
@@ -1515,8 +1515,9 @@ std::pair<size_t, size_t> DFHelper::iden
bool on = false;
size_t st = 0;
std::string str = sorted_spaces_[i].first;
- std::list<std::string>::iterator itr, end;
- for (itr = needs.begin(), end = needs.end(); itr != end; ++itr) {
+
+ auto itr = needs.begin();
+ while (itr != needs.end()) {
op = 0;
op = (!(std::get<0>(transf_[*itr]).compare(str)) ? 1 : op);
op = (!(std::get<1>(transf_[*itr]).compare(str)) ? 2 : op);
@@ -1533,9 +1534,9 @@ std::pair<size_t, size_t> DFHelper::iden
largest = (largest < small ? small : largest);
order_.push_back(*itr);
st++;
- needs.erase(itr);
- itr--;
- }
+ itr = needs.erase(itr);
+ } else
+ itr++;
}
if (st > 0) {
strides_.push_back(st);
|