X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb-python/blobdiff_plain/0463996f64aa7cde2c3d033f81d43963f54c2bba..ed8cc62dda4ba6c81ce63cbc88289eb9a9acf3b5:/buffer.c diff --git a/buffer.c b/buffer.c index ee0dd40..7456a3d 100644 --- a/buffer.c +++ b/buffer.c @@ -83,7 +83,7 @@ static int rbuf_pysegcount(PyObject *me, int *nn) { if (nn) *nn = BSZ(BUF_B(me)); return (1); } static int rbuf_pyreadbuf(PyObject *me, int seg, void **q) - { assert(seg == 0); *q = BBASE(BUF_B(me)); return (BSZ(BUF_B(me))); } + { assert(seg == 0); *q = BCUR(BUF_B(me)); return (BLEFT(BUF_B(me))); } static PyObject *rbmeth_skip(PyObject *me, PyObject *arg) { @@ -236,6 +236,7 @@ static PyObject *rbget_offset(PyObject *me, void *hunoz) static int rbset_offset(PyObject *me, PyObject *x, void *hunoz) { size_t n; + if (!x) NIERR("__del__"); if (!convszt(x, &n)) goto end; if (n > BSZ(BUF_B(me))) VALERR("out of range"); BCUR(BUF_B(me)) = BBASE(BUF_B(me)) + n; @@ -316,7 +317,7 @@ static PyTypeObject rbuf_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ rbuf_pymethods, /* @tp_methods@ */ 0, /* @tp_members@ */ rbuf_pygetset, /* @tp_getset@ */ @@ -549,7 +550,7 @@ static PyTypeObject wbuf_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ wbuf_pymethods, /* @tp_methods@ */ 0, /* @tp_members@ */ wbuf_pygetset, /* @tp_getset@ */