diff options
author | Raymond Hettinger <python@rcn.com> | 2013-07-13 17:03:58 -0700 |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2013-07-13 17:03:58 -0700 |
commit | 840533bf1c7e5cb9b565067795df28a41b61844e (patch) | |
tree | 801a269bf74cd768cf451a91aee9d2ef66109572 | |
parent | 3959af9b2a52a71ab329d3850c9e3fe72bd7a7cc (diff) | |
download | cpython-git-840533bf1c7e5cb9b565067795df28a41b61844e.tar.gz |
Use a do-while loop in the inner loop for rotate (m is always greater than zero).
-rw-r--r-- | Modules/_collectionsmodule.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index 44ed0b2f6a..21cc21dac9 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -506,13 +506,15 @@ _deque_rotate(dequeobject *deque, Py_ssize_t n) rightindex -= m; leftindex -= m; n -= m; - while (m--) + do { *(dest--) = *(src--); + } while (--m); } if (rightindex == -1) { block *prevblock = rightblock->leftlink; assert(leftblock != rightblock); + assert(b == NULL); b = rightblock; CHECK_NOT_END(prevblock); MARK_END(prevblock->rightlink); @@ -551,13 +553,15 @@ _deque_rotate(dequeobject *deque, Py_ssize_t n) leftindex += m; rightindex += m; n += m; - while (m--) + do { *(dest++) = *(src++); + } while (--m); } if (leftindex == BLOCKLEN) { block *nextblock = leftblock->rightlink; assert(leftblock != rightblock); + assert(b == NULL); b = leftblock; CHECK_NOT_END(nextblock); MARK_END(nextblock->leftlink); |