Tighten inner-loop for deque_inplace_repeat().

This commit is contained in:
Raymond Hettinger 2015-09-14 01:03:04 -04:00
parent e4f3467df1
commit ad26225e1a
1 changed files with 6 additions and 4 deletions

View File

@ -568,7 +568,7 @@ deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)
return PyErr_NoMemory();
deque->state++;
for (i = 0 ; i < n-1 ; i++) {
for (i = 0 ; i < n-1 ; ) {
if (deque->rightindex == BLOCKLEN - 1) {
block *b = newblock(Py_SIZE(deque) + i);
if (b == NULL) {
@ -582,9 +582,11 @@ deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)
MARK_END(b->rightlink);
deque->rightindex = -1;
}
deque->rightindex++;
Py_INCREF(item);
deque->rightblock->data[deque->rightindex] = item;
for ( ; i < n-1 && deque->rightindex != BLOCKLEN - 1 ; i++) {
deque->rightindex++;
Py_INCREF(item);
deque->rightblock->data[deque->rightindex] = item;
}
}
Py_SIZE(deque) += i;
Py_INCREF(deque);