Refactor deque_traverse().

Hoist conditional expression out of the loop.
Use rightblock as the guard instead of checking for NULL.
This commit is contained in:
Raymond Hettinger 2013-07-06 11:58:09 -10:00
parent 98054b4c1b
commit 5bfa8671bc
1 changed files with 6 additions and 6 deletions

View File

@ -805,17 +805,17 @@ deque_traverse(dequeobject *deque, visitproc visit, void *arg)
Py_ssize_t index;
Py_ssize_t indexlo = deque->leftindex;
for (b = deque->leftblock; b != NULL; b = b->rightlink) {
const Py_ssize_t indexhi = b == deque->rightblock ?
deque->rightindex :
BLOCKLEN - 1;
for (index = indexlo; index <= indexhi; ++index) {
for (b = deque->leftblock; b != deque->rightblock; b = b->rightlink) {
for (index = indexlo; index < BLOCKLEN ; index++) {
item = b->data[index];
Py_VISIT(item);
}
indexlo = 0;
}
for (index = indexlo; index <= deque->rightindex; index++) {
item = b->data[index];
Py_VISIT(item);
}
return 0;
}