File: src/BTrees/BTreeTemplate.c
Function: _BTree_get
Error: returning (PyObject*)NULL without setting an exception
179 static PyObject *
180 _BTree_get(BTree *self, PyObject *keyarg, int has_key)
181 {
182   KEY_TYPE key;
183   PyObject *result = NULL;    /* guilty until proved innocent */
184   int copied = 1;
185 
186   COPY_KEY_FROM_ARG(key, keyarg, copied);
187   UNLESS (copied) return NULL;
taking False path
188 
189   PER_USE_OR_RETURN(self, NULL);
when considering range: -128 <= value <= -2
taking False path
when considering range: -128 <= value <= -1
taking False path
190   if (self->len == 0) {
when considering range: -0x80000000 <= value <= -1
taking False path
191     /* empty BTree */
192     if (has_key)
193       result = PyInt_FromLong(0);
194     else
195       PyErr_SetObject(PyExc_KeyError, keyarg);
196   }
197   else {
198     for (;;) {
199       int i;
200       Sized *child;
201 
202       BTREE_SEARCH(i, self, key, goto Done);
when considering range: -0x40000000 <= value <= 0
taking False path
203       child = self->data[i].child;
when treating unknown struct BTreeItem * from src/BTrees/BTreeTemplate.c:203 as non-NULL
204       has_key += has_key != 0;    /* bump depth counter, maybe */
when considering range: -0x80000000 <= value <= -1
205       if (SameType_Check(self, child)) {
when treating unknown struct Sized * from src/BTrees/BTreeTemplate.c:203 as non-NULL
when taking True path
when considering range: 3 <= value <= 127
taking False path
206         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:206
207         self = BTREE(child);
208         PER_USE_OR_RETURN(self, NULL);
when considering value == (signed char)-1 from src/BTrees/BTreeTemplate.c:208
taking True path
calling unknown int (*) (struct PyObject *) from src/BTrees/BTreeTemplate.c:208
when considering range: -0x80000000 <= value <= -1
taking True path
209       }
210       else {
211         result = _bucket_get(BUCKET(child), keyarg, has_key);
212         break;
213       }
214     }
215   }
216 
217  Done:
218   PER_UNUSE(self);
219   return result;
220 }
returning (PyObject*)NULL without setting an exception
found 2 similar trace(s) to this