1430 static PyObject *
1431 bitarray_pop(bitarrayobject *self, PyObject *args)
1432 {
1433 idx_t i = -1;
1434 long vi;
1435
1436 if (!PyArg_ParseTuple(args, "|L:pop", &i))
when _PyArg_ParseTuple_SizeT() succeeds
taking False path
1437 return NULL;
1438
1439 if (self->nbits == 0) {
when considering range: -0x8000000000000000 <= value <= -1
taking False path
1440 /* special case -- most common failure cause */
1441 PyErr_SetString(PyExc_IndexError, "pop from empty bitarray");
1442 return NULL;
1443 }
1444 if (i < 0)
when considering range: 0 <= value <= 0x7fffffffffffffff
taking False path
1445 i += self->nbits;
1446
1447 if (i < 0 || i >= self->nbits) {
taking False path
when taking False path
1448 PyErr_SetString(PyExc_IndexError, "pop index out of range");
1449 return NULL;
1450 }
1451 vi = GETBIT(self, i);
when treating unknown char * from bitarray/_bitarray.c:1451 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking True path
when considering range: -0x80000000 <= value <= -1
1452 if (delete_n(self, i, 1) < 0)
when considering range: -0x80000000 <= value <= -1
taking True path
1453 return NULL;
1454
1455 return PyBool_FromLong(vi);
1456 }
returning (PyObject*)NULL without setting an exception
found 10 similar trace(s) to this