chiark
/
gitweb
/
~mdw
/
catacomb-python
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bug squashing.
[catacomb-python]
/
buffer.c
diff --git
a/buffer.c
b/buffer.c
index 8e4ece55ffda821835914e8d071e59cd74b18d45..7456a3dad85c6404c234435ba82add4396840daa 100644
(file)
--- 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)
{ if (nn) *nn = BSZ(BUF_B(me)); return (1); }
static int rbuf_pyreadbuf(PyObject *me, int seg, void **q)
- { assert(seg == 0); *q = B
BASE(BUF_B(me)); return (BSZ
(BUF_B(me))); }
+ { assert(seg == 0); *q = B
CUR(BUF_B(me)); return (BLEFT
(BUF_B(me))); }
static PyObject *rbmeth_skip(PyObject *me, PyObject *arg)
{
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;
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;
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;