Need a (size_t) cast instead of (unsigned) to be big enough for a Py_ssize_t.
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 908cfd2..0ca9be1 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1,6 +1,12 @@
#include "Python.h"
#include "structmember.h"
+#ifdef STDC_HEADERS
+#include <stddef.h>
+#else
+#include <sys/types.h> /* For size_t */
+#endif
+
/* collections module implementation of a deque() datatype
Written and maintained by Raymond D. Hettinger <python@rcn.com>
Copyright (c) 2004-2015 Python Software Foundation.
@@ -780,15 +786,15 @@
b = deque->rightblock;
} else {
i += deque->leftindex;
- n = (Py_ssize_t)((unsigned) i / BLOCKLEN);
- i = (Py_ssize_t)((unsigned) i % BLOCKLEN);
+ n = (Py_ssize_t)((size_t) i / BLOCKLEN);
+ i = (Py_ssize_t)((size_t) i % BLOCKLEN);
if (index < (Py_SIZE(deque) >> 1)) {
b = deque->leftblock;
while (n--)
b = b->rightlink;
} else {
n = (Py_ssize_t)(
- ((unsigned)(deque->leftindex + Py_SIZE(deque) - 1))
+ ((size_t)(deque->leftindex + Py_SIZE(deque) - 1))
/ BLOCKLEN - n);
b = deque->rightblock;
while (n--)
@@ -839,15 +845,15 @@
return deque_del_item(deque, i);
i += deque->leftindex;
- n = (Py_ssize_t)((unsigned) i / BLOCKLEN);
- i = (Py_ssize_t)((unsigned) i % BLOCKLEN);
+ n = (Py_ssize_t)((size_t) i / BLOCKLEN);
+ i = (Py_ssize_t)((size_t) i % BLOCKLEN);
if (index <= halflen) {
b = deque->leftblock;
while (n--)
b = b->rightlink;
} else {
n = (Py_ssize_t)(
- ((unsigned)(deque->leftindex + Py_SIZE(deque) - 1))
+ ((size_t)(deque->leftindex + Py_SIZE(deque) - 1))
/ BLOCKLEN - n);
b = deque->rightblock;
while (n--)