}
DOUINTCONV(WBMETH_PUTU_)
+#define MASKz 0
#define SZ_z 1
#define WBMETH_PUTBLK_(n, W, w) \
static PyObject *wbmeth_putblk##w(PyObject *me, PyObject *arg) \
{ \
char *p; \
Py_ssize_t sz; \
- if (!PyArg_ParseTuple(arg, "s#:putblk" #w, &p, &sz)) return (0); \
+ if (!PyArg_ParseTuple(arg, "s#:putblk" #w, &p, &sz)) goto end; \
+ if (MASK##W && sz > MASK##W) VALERR("too large"); \
ensure(me, sz + SZ_##n); \
buf_putmem##w(BUF_B(me), p, sz); assert(BOK(BUF_B(me))); \
RETURN_ME; \
+ end: \
+ return (0); \
}
BUF_DOSUFFIXES(WBMETH_PUTBLK_)
BUF_DOSUFFIXES(WBMETH_DECL_PUTBLK_)
METH (putmp, "WBUF.putmp(X)")
METH (putgf, "WBUF.putgf(X)")
- KWMETH(putecpt, "WBUF.putecpt(P)")
+ METH (putecpt, "WBUF.putecpt(P)")
METH (putecptraw, "WBUF.putecptraw(P)")
METH (putge, "WBUF.putge(X)")
METH (putgeraw, "WBUF.putgeraw(X)")