chiark / gitweb /
debian/control: Add Build-Depends for `dh-python'.
[mLib-python] / array.c
diff --git a/array.c b/array.c
index 724f16b8cd6f489c1a8702231967283e3b225a9e..d83f64e4f7b9ecf067803486a0d0bfeee67f3997 100644 (file)
--- a/array.c
+++ b/array.c
@@ -26,6 +26,8 @@
 
 /*----- Header files ------------------------------------------------------*/
 
+#define PY_SSIZE_T_CLEAN
+
 #include <Python.h>
 
 #include <string.h>
@@ -257,7 +259,7 @@ static void da_pydealloc(PyObject *me)
   DA_DESTROY(DA_V(me));
 }
 
-static int da_pylength(PyObject *me)
+static Py_ssize_t da_pylength(PyObject *me)
   { return (DA_LEN(DA_V(me))); }
 
 static int da_pytraverse(PyObject *me, visitproc proc, void *arg)
@@ -295,12 +297,12 @@ static PyObject *da_pyconcat(PyObject *me, PyObject *other)
   return (x);
 }
 
-static PyObject *da_pyrepeat(PyObject *me, int times)
+static PyObject *da_pyrepeat(PyObject *me, Py_ssize_t times)
 {
   PyObject *x = da_new(&da_pytype);
   PyObject **items = DA(DA_V(me)), **dest;
   size_t n = DA_LEN(DA_V(me));
-  int i;
+  Py_ssize_t i;
 
   DA_ENSURE(DA_V(x), n * times);
   DA_UNSAFE_EXTEND(DA_V(x), n * times);
@@ -310,7 +312,7 @@ static PyObject *da_pyrepeat(PyObject *me, int times)
   return (x);
 }
 
-static PyObject *da_pygetitem(PyObject *me, int i)
+static PyObject *da_pygetitem(PyObject *me, Py_ssize_t i)
 {
   PyObject *o;
 
@@ -323,7 +325,7 @@ static PyObject *da_pygetitem(PyObject *me, int i)
   return (o);
 }
 
-static PyObject *da_pygetslice(PyObject *me, int i, int j)
+static PyObject *da_pygetslice(PyObject *me, Py_ssize_t i, Py_ssize_t j)
 {
   PyObject *x;
 
@@ -336,7 +338,7 @@ static PyObject *da_pygetslice(PyObject *me, int i, int j)
   return (x);
 }
 
-static int da_pyputitem(PyObject *me, int i, PyObject *x)
+static int da_pyputitem(PyObject *me, Py_ssize_t i, PyObject *x)
 {
   PyObject **p;
 
@@ -351,7 +353,8 @@ static int da_pyputitem(PyObject *me, int i, PyObject *x)
   return (0);
 }
 
-static int da_pyputslice(PyObject *me, int i, int j, PyObject *x)
+static int da_pyputslice(PyObject *me, Py_ssize_t i, Py_ssize_t j,
+                        PyObject *x)
   { return (da_insert(me, x, i, j)); }
 
 static int da_pycontainsp(PyObject *me, PyObject *x)
@@ -375,7 +378,7 @@ static PyObject *da_pyrepr(PyObject *me)
   dstr d = DSTR_INIT;
   PyObject *s, *rc = 0;
   char *p;
-  int n;
+  Py_ssize_t n;
   size_t i;
 
   dstr_puts(&d, "Array([");
@@ -403,11 +406,11 @@ static PyObject *da_pyappend(PyObject *me, PyObject *seq)
   RETURN_ME;
 }
 
-static PyObject *da_pyiprepeat(PyObject *me, int times)
+static PyObject *da_pyiprepeat(PyObject *me, Py_ssize_t times)
 {
   PyObject **items, **dest;
   size_t n = DA_LEN(DA_V(me));
-  int i;
+  Py_ssize_t i;
 
   if (times < 0) {
     PyErr_SetString(PyExc_ValueError, "multiplier must be nonnegative");
@@ -432,7 +435,7 @@ static PyObject *da_pyiprepeat(PyObject *me, int times)
 static PyObject *da_pyget(PyObject *me, PyObject *index)
 {
   if (PySlice_Check(index)) {
-    int start, stop, step, len;
+    Py_ssize_t start, stop, step, len;
     PyObject *v;
     PyObject **ww;
     PyObject **vv;
@@ -463,7 +466,7 @@ static PyObject *da_pyget(PyObject *me, PyObject *index)
 static int da_pyput(PyObject *me, PyObject *index, PyObject *x)
 {
   if (PySlice_Check(index)) {
-    int start, stop, step, len;
+    Py_ssize_t start, stop, step, len;
     size_t n;
     PyObject **ww;
     PyObject **vv;