X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/68ec53f32a22b0c38e3b7b53e03edf747c49e416..4f3d0934b91624b7c3634a5e4d4ab4ddd2a175d3:/util.c diff --git a/util.c b/util.c index 86b7aba..1739ebe 100644 --- a/util.c +++ b/util.c @@ -32,15 +32,13 @@ /*----- Conversions -------------------------------------------------------*/ -#define GETU_(n) \ - PyObject *getu##n(uint##n w) \ - { \ - if (w <= MASK##n) \ - return (PyInt_FromLong(w)); \ - else \ - return (PyLong_FromUnsignedLong(w)); \ - } -DOUINTSZ(GETU_) +PyObject *getulong(unsigned long w) +{ + if (w <= LONG_MAX) + return (PyInt_FromLong(w)); + else + return (PyLong_FromUnsignedLong(w)); +} PyObject *getbool(int b) { @@ -62,7 +60,7 @@ int convulong(PyObject *o, void *pp) if (PyInt_Check(o)) { i = PyInt_AS_LONG(o); - if (i < 0) TYERR("must be nonnegative"); + if (i < 0) VALERR("must be nonnegative"); *p = i; } else { if ((t = PyNumber_Long(o)) == 0) goto end; @@ -82,7 +80,7 @@ end: uint##n *p = pp; \ \ if (!convulong(o, &u)) goto end; \ - if (u > MASK##n) TYERR("out of range"); \ + if (u > MASK##n) VALERR("out of range"); \ *p = u; \ return (1); \ end: \ @@ -96,7 +94,7 @@ int convuint(PyObject *o, void *pp) unsigned *p = pp; if (!convulong(o, &u)) goto end; - if (u > UINT_MAX) TYERR("out of range"); + if (u > UINT_MAX) VALERR("out of range"); *p = u; return (1); end: @@ -109,7 +107,7 @@ int convmpw(PyObject *o, void *pp) unsigned *p = pp; if (!convulong(o, &u)) goto end; - if (u > MPW_MAX) TYERR("out of range"); + if (u > MPW_MAX) VALERR("out of range"); *p = u; return (1); end: @@ -122,7 +120,7 @@ int convszt(PyObject *o, void *pp) size_t *p = pp; if (!convulong(o, &u)) goto end; - if (u > ~(size_t)0) TYERR("out of range"); + if (u > ~(size_t)0) VALERR("out of range"); *p = u; return (1); end: