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