X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb-python/blobdiff_plain/b2687a0a4b3c5e45cad7c5815a6d3805bfc8d4f1..f1b0cf0da6b3bcc530d7f72982278510d94f6456:/buffer.c diff --git a/buffer.c b/buffer.c index af4e1bf..43bf02d 100644 --- a/buffer.c +++ b/buffer.c @@ -1,6 +1,4 @@ /* -*-c-*- - * - * $Id$ * * Reading and writing buffers of stuff * @@ -55,7 +53,7 @@ static PyObject *buferr; static PyObject *rbuf_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw) { char *p, *q; - int n; + Py_ssize_t n; buf_pyobj *me = 0; static char *kwlist[] = { "data", 0 }; @@ -79,10 +77,10 @@ static void buf_pydealloc(PyObject *me) FREEOBJ(me); } -static int rbuf_pysegcount(PyObject *me, int *nn) +static Py_ssize_t rbuf_pysegcount(PyObject *me, Py_ssize_t *nn) { if (nn) *nn = BSZ(BUF_B(me)); return (1); } -static int rbuf_pyreadbuf(PyObject *me, int seg, void **q) +static Py_ssize_t rbuf_pyreadbuf(PyObject *me, Py_ssize_t seg, void **q) { assert(seg == 0); *q = BCUR(BUF_B(me)); return (BLEFT(BUF_B(me))); } static PyObject *rbmeth_skip(PyObject *me, PyObject *arg) @@ -287,7 +285,7 @@ static PyBufferProcs rbuf_pybuffer = { static PyTypeObject rbuf_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.ReadBuffer", /* @tp_name@ */ + "ReadBuffer", /* @tp_name@ */ sizeof(buf_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -342,7 +340,7 @@ static void ensure(PyObject *me, size_t n) if (BLEFT(b) < n) { size_t nn = BSZ(b); octet *p; - size_t want = BLEFT(b) + n; + size_t want = BLEN(b) + n; while (nn < want) nn <<= 1; p = xrealloc(BBASE(b), nn, BSZ(b)); BCUR(b) = p + BLEN(b); @@ -369,10 +367,10 @@ end: return ((PyObject *)me); } -static int wbuf_pysegcount(PyObject *me, int *nn) +static Py_ssize_t wbuf_pysegcount(PyObject *me, Py_ssize_t *nn) { if (nn) *nn = BLEN(BUF_B(me)); return (1); } -static int wbuf_pyreadbuf(PyObject *me, int seg, void **q) +static Py_ssize_t wbuf_pyreadbuf(PyObject *me, Py_ssize_t seg, void **q) { assert(seg == 0); *q = BBASE(BUF_B(me)); return (BLEN(BUF_B(me))); } static PyObject *wbmeth_zero(PyObject *me, PyObject *arg) @@ -389,7 +387,7 @@ static PyObject *wbmeth_zero(PyObject *me, PyObject *arg) static PyObject *wbmeth_put(PyObject *me, PyObject *arg) { void *p; - int n; + Py_ssize_t n; if (!PyArg_ParseTuple(arg, "s#:put", &p, &n)) return (0); ensure(me, n); buf_put(BUF_B(me), p, n); assert(BOK(BUF_B(m))); @@ -412,7 +410,7 @@ DOUINTCONV(WBMETH_PUTU_) static PyObject *wbmeth_putblk##w(PyObject *me, PyObject *arg) \ { \ char *p; \ - int sz; \ + Py_ssize_t sz; \ if (!PyArg_ParseTuple(arg, "s#:putblk" #w, &p, &sz)) return (0); \ ensure(me, sz + SZ_##n); \ buf_putmem##w(BUF_B(me), p, sz); assert(BOK(BUF_B(me))); \ @@ -493,7 +491,7 @@ static PyGetSetDef wbuf_pygetset[] = { static PyMethodDef wbuf_pymethods[] = { #define METHNAME(func) wbmeth_##func - METH (zero, "WBUF.skip(N)") + METH (zero, "WBUF.zero(N)") METH (put, "WBUF.put(BYTES)") #define WBMETH_DECL_PUTU_(n, W, w) \ METH(putu##w, "WBUF.putu" #w "(INT)") @@ -520,7 +518,7 @@ static PyBufferProcs wbuf_pybuffer = { static PyTypeObject wbuf_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.WriteBuffer", /* @tp_name@ */ + "WriteBuffer", /* @tp_name@ */ sizeof(buf_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */