utils.c: Raise exceptions from `convTHING' with null arguments.
[pyke] / util.c
diff --git a/util.c b/util.c
index ed56e99..8fab0bf 100644 (file)
--- a/util.c
+++ b/util.c
@@ -60,6 +60,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");
@@ -131,8 +132,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 ------------------------------------------------------*/