312 static int
313 PreviousBucket(Bucket **current, Bucket *first)
314 {
taking True path
315 Bucket *trailing = NULL; /* first travels; trailing follows it */
316 int result = 0;
317
318 assert(current && *current && first);
319 if (first == *current)
when treating unknown struct Bucket * * from src/BTrees/BTreeModuleTemplate.c:313 as non-NULL
when taking False path
320 return 0;
321
322 do {
323 trailing = first;
324 PER_USE_OR_RETURN(first, -1);
when considering range: -128 <= value <= -2
taking False path
when considering value == (signed char)0 from src/BTrees/BTreeModuleTemplate.c:324
taking True path
325 first = first->next;
326
327
328
329
330
331
332
333 ((trailing)->state==cPersistent_STICKY_STATE
334 &&
335 ((trailing)->state=cPersistent_UPTODATE_STATE));
336
337 PER_ACCESSED(trailing);
when treating unknown struct cPersistenceCAPIstruct * from src/persistent/cPersistence.h:112 as non-NULL
calling unknown void (*) (struct cPersistentObject *) from src/BTrees/BTreeModuleTemplate.c:337
338
339
340
341
342
343 if (first == *current) {
when taking True path
344 *current = trailing;
'*trailing' is now referenced by 1 non-stack value(s): heap-region-238
345 result = 1;
346 break;
347 }
348 } while (first);
349
350 return result;
351 }
ob_refcnt of '*trailing' is 1 too low
was expecting final ob_refcnt to be N + 1 (for some unknown N)
due to object being referenced by: heap-region-238
but final ob_refcnt is N + 0
found 3 similar trace(s) to this