X-Git-Url: https://git.distorted.org.uk/~mdw/pyke/blobdiff_plain/017d5f6583ba31e9971dd05c6b4eb0b9ef1eadfa..aa53a95ff66edd391aa9a5bd6df7ec33a7b5d1b5:/util.c diff --git a/util.c b/util.c index 58d2fe7..7118bfb 100644 --- a/util.c +++ b/util.c @@ -83,6 +83,7 @@ int convulong(PyObject *o, void *pp) unsigned long *p = pp; PyObject *t; + if (!o) VALERR("can't delete"); if (PyInt_Check(o)) { i = PyInt_AS_LONG(o); if (i < 0) VALERR("must be nonnegative"); @@ -132,6 +133,7 @@ int convk64(PyObject *o, void *pp) int rc = 0; uint32 lo, hi; + if (!o) VALERR("can't delete"); if (init_i32()) goto end; if ((i = PyNumber_Int(o)) == 0) goto end; lo = PyInt_AsUnsignedLongMask(i); @@ -176,8 +178,11 @@ end: int convbool(PyObject *o, void *pp) { + if (!o) VALERR("can't delete"); *(int *)pp = PyObject_IsTrue(o); return (1); +end: + return (0); } /*----- Type messing ------------------------------------------------------*/