FREEOBJ(me);
}
+#ifdef PY3
+ static int rbuf_pygetbuf(PyObject *me, Py_buffer *vw, int f)
+ {
+ buf *b = BUF_B(me);
+ return (PyBuffer_FillInfo(vw, me, BCUR(b), BLEFT(b), 1, f));
+ }
+#else
static Py_ssize_t rbuf_pysegcount(PyObject *me, Py_ssize_t *nn)
{ if (nn) *nn = BSZ(BUF_B(me)); return (1); }
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))); }
+#endif
static PyObject *rbmeth_skip(PyObject *me, PyObject *arg)
{
};
static const PyBufferProcs rbuf_pybuffer = {
+#ifdef PY3
+ rbuf_pygetbuf, /* @bf_getbuffer@ */
+ 0, /* @bf_releasebuffer@ */
+#else
rbuf_pyreadbuf, /* @bf_getreadbuffer@ */
0, /* @bf_getwritebuffer@ */
rbuf_pysegcount, /* @bf_getsegcount@ */
0 /* @bf_getcharbuffer@ */
+#endif
};
static const PyTypeObject rbuf_pytype_skel = {
return ((PyObject *)me);
}
+#ifdef PY3
+ static int wbuf_pygetbuf(PyObject *me, Py_buffer *vw, int f)
+ {
+ buf *b = BUF_B(me);
+ if (PyBuffer_FillInfo(vw, me, BBASE(b), BLEN(b), 0, f)) return (-1);
+ BUF_LK(me)++; return (0);
+ }
+ static void wbuf_pyrlsbuf(PyObject *me, Py_buffer *vw)
+ { BUF_LK(me)--; }
+#else
static Py_ssize_t wbuf_pysegcount(PyObject *me, Py_ssize_t *nn)
{ if (nn) *nn = BLEN(BUF_B(me)); return (1); }
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))); }
+#endif
static PyObject *wbmeth_zero(PyObject *me, PyObject *arg)
{
};
static const PyBufferProcs wbuf_pybuffer = {
+#ifdef PY3
+ wbuf_pygetbuf, /* @bf_getbuffer@ */
+ wbuf_pyrlsbuf /* @bf_releasebuffer@ */
+#else
wbuf_pyreadbuf, /* @bf_getreadbuffer@ */
0, /* @bf_getwritebuffer@ */
wbuf_pysegcount, /* @bf_getsegcount@ */
0 /* @bf_getcharbuffer@ */
+#endif
};
static const PyTypeObject wbuf_pytype_skel = {