File: src/BTrees/BTreeTemplate.c
Function: BTree_maxminKey
Error: returning (PyObject*)NULL without setting an exception
1381 static PyObject *
1382 BTree_maxminKey(BTree *self, PyObject *args, int min)
1383 {
when considering value == (signed char)2 from src/BTrees/BTreeTemplate.c:1444
taking True path
1384   PyObject *key=0;
1385   Bucket *bucket = NULL;
1386   int offset, rc;
1387   int empty_tree = 1;
1388 
1389   UNLESS (PyArg_ParseTuple(args, "|O", &key)) return NULL;
when PyArg_ParseTuple() succeeds
taking False path
1390 
1391   UNLESS (PER_USE(self)) return NULL;
when considering range: -128 <= value <= -2
taking True path
when considering range: -128 <= value <= -1
taking False path
taking False path
1392 
1393   UNLESS (self->data && self->len) goto empty;
when treating unknown struct BTreeItem * from src/BTrees/BTreeTemplate.c:1393 as non-NULL
taking False path
when considering range: -0x80000000 <= value <= -1
taking False path
1394 
1395   /* Find the  range */
1396 
1397   if (key)
taking True path
1398     {
1399       if ((rc = BTree_findRangeEnd(self, key, min, 0, &bucket, &offset)) <= 0)
when considering range: -0x80000000 <= value <= 0
taking True path
1400         {
1401           if (rc < 0) goto err;
when considering range: -0x80000000 <= value <= -1
taking True path
1402           empty_tree = 0;
1403           goto empty;
1404         }
1405       PER_UNUSE(self);
1406       UNLESS (PER_USE(bucket))
1407         {
1408           Py_DECREF(bucket);
1409           return NULL;
1410         }
1411     }
1412   else if (min)
1413     {
1414       bucket = self->firstbucket;
1415       PER_UNUSE(self);
1416       PER_USE_OR_RETURN(bucket, NULL);
1417       Py_INCREF(bucket);
1418       offset = 0;
1419     }
1420   else
1421     {
1422       bucket = BTree_lastBucket(self);
1423       PER_UNUSE(self);
1424       UNLESS (PER_USE(bucket))
1425         {
1426           Py_DECREF(bucket);
1427           return NULL;
1428         }
1429       assert(bucket->len);
1430       offset = bucket->len - 1;
1431     }
1432 
1433   COPY_KEY_TO_OBJECT(key, bucket->keys[offset]);
1434   PER_UNUSE(bucket);
1435   Py_DECREF(bucket);
1436 
1437   return key;
1438 
1439  empty:
1440   PyErr_SetString(PyExc_ValueError,
1441                   empty_tree ? "empty tree" :
1442                   "no key satisfies the conditions");
1443  err:
1444   PER_UNUSE(self);
when treating unknown struct cPersistenceCAPIstruct * from src/persistent/cPersistence.h:112 as non-NULL
calling unknown void (*) (struct cPersistentObject *) from src/BTrees/BTreeTemplate.c:1444
1445   if (bucket)
when treating unknown struct Bucket * * from src/BTrees/BTreeTemplate.c:1399 as non-NULL
taking True path
when considering range: -128 <= value <= 1
taking False path
1446     {
1447       PER_UNUSE(bucket);
calling unknown void (*) (struct cPersistentObject *) from src/BTrees/BTreeTemplate.c:1447
1448       Py_DECREF(bucket);
when considering range: -0x8000000000000000 <= value <= -1
taking True path
1449     }
1450   return NULL;
1451 }
returning (PyObject*)NULL without setting an exception
found 18 similar trace(s) to this