PyObject_IsTrue() can return an error condition.

Adding code to handle it properly.
This commit is contained in:
Raymond Hettinger 2003-04-23 00:14:18 +00:00
parent 863983e8e5
commit 9a9c436036

View file

@ -213,6 +213,7 @@ random_seed(RandomObject *self, PyObject *args)
unsigned long *key = NULL;
unsigned long keymax; /* # of allocated slots in key */
unsigned long keyused; /* # of used slots in key */
int err;
PyObject *arg = NULL;
@ -261,11 +262,13 @@ random_seed(RandomObject *self, PyObject *args)
thirtytwo = PyInt_FromLong(32L);
if (thirtytwo == NULL)
goto Done;
while (PyObject_IsTrue(n)) {
while ((err=PyObject_IsTrue(n))) {
PyObject *newn;
PyObject *pychunk;
unsigned long chunk;
if (err == -1)
goto Done;
pychunk = PyNumber_And(n, masklower);
if (pychunk == NULL)
goto Done;