X-Git-Url: https://git.distorted.org.uk/~mdw/mLib-python/blobdiff_plain/d65a9a847e500ae144e31040454acba1a7333aaf..HEAD:/array.c diff --git a/array.c b/array.c index 724f16b..d83f64e 100644 --- a/array.c +++ b/array.c @@ -26,6 +26,8 @@ /*----- Header files ------------------------------------------------------*/ +#define PY_SSIZE_T_CLEAN + #include #include @@ -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;