Fix some invalid iterator usage in Python when deleting/inserting slices from/into containers
This commit is contained in:
parent
7eda619741
commit
38b2b95c30
1 changed files with 4 additions and 8 deletions
|
|
@ -339,7 +339,7 @@ namespace swig {
|
||||||
std::advance(it,ii);
|
std::advance(it,ii);
|
||||||
for (size_t rc=0; rc<replacecount; ++rc) {
|
for (size_t rc=0; rc<replacecount; ++rc) {
|
||||||
*it++ = *isit++;
|
*it++ = *isit++;
|
||||||
for (Py_ssize_t c=0; c<(step-1); ++c)
|
for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -357,7 +357,7 @@ namespace swig {
|
||||||
std::advance(it,size-ii-1);
|
std::advance(it,size-ii-1);
|
||||||
for (size_t rc=0; rc<replacecount; ++rc) {
|
for (size_t rc=0; rc<replacecount; ++rc) {
|
||||||
*it++ = *isit++;
|
*it++ = *isit++;
|
||||||
for (Py_ssize_t c=0; c<(-step-1); ++c)
|
for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -383,9 +383,7 @@ namespace swig {
|
||||||
size_t delcount = (jj - ii + step - 1) / step;
|
size_t delcount = (jj - ii + step - 1) / step;
|
||||||
while (delcount) {
|
while (delcount) {
|
||||||
it = self->erase(it);
|
it = self->erase(it);
|
||||||
if (it==self->end())
|
for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
|
||||||
break;
|
|
||||||
for (Py_ssize_t c=0; c<(step-1); ++c)
|
|
||||||
it++;
|
it++;
|
||||||
delcount--;
|
delcount--;
|
||||||
}
|
}
|
||||||
|
|
@ -399,9 +397,7 @@ namespace swig {
|
||||||
size_t delcount = (ii - jj - step - 1) / -step;
|
size_t delcount = (ii - jj - step - 1) / -step;
|
||||||
while (delcount) {
|
while (delcount) {
|
||||||
it = typename Sequence::reverse_iterator(self->erase((++it).base()));
|
it = typename Sequence::reverse_iterator(self->erase((++it).base()));
|
||||||
if (it==self->rend())
|
for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
|
||||||
break;
|
|
||||||
for (Py_ssize_t c=0; c<(-step-1); ++c)
|
|
||||||
it++;
|
it++;
|
||||||
delcount--;
|
delcount--;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue