DebugAllocatorDeinit
Description
Tear down a DebugAllocator. Iterates live first and emits a LOG_ERROR for each still-live allocation with its captured alloc trace. Releases all backing storage (heap / meta / page-managed pages) and clears the struct. Enforces the thread-affinity check – calling from a thread other than the one that ran DebugAllocatorInit aborts via LOG_FATAL.
Parameters
| Name | Direction | Description |
|---|---|---|
self |
in,out | DebugAllocator instance, or NULL / uninitialised. |
Success
Function returns. Any still-live allocations have been logged with their captured traces; heap / meta are deinitialised; the struct is fully zeroed and cannot be used until re-initialised. force_page_backing’d regions remain mprotected and stay mapped until process exit (documented trade-off).
Failure
No action when self is NULL or __magic does not match DEBUG_ALLOCATOR_MAGIC. Cross-thread call aborts via LOG_FATAL.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Default.h:99:
///
#if FEATURE_DEFAULT_ALLOC_DEBUG
# define DefaultAllocatorDeinit(ptr) DebugAllocatorDeinit(ptr)
#else
# define DefaultAllocatorDeinit(ptr) HeapAllocatorDeinit(ptr)- In
Debug.c:455:
// ---------------------------------------------------------------------------
void DebugAllocatorDeinit(DebugAllocator *self) {
if (!self || !MAGIC_MATCHES(self->base.__magic, DEBUG_ALLOCATOR_MAGIC))
return;- In
AllocDebug.c:49:
ok = ok && DebugAllocatorOverflows(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:60:
bool ok = (p == NULL) && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:74:
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:90:
bool ok = DebugAllocatorOverflows(&dbg) == 1;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:107:
ok = ok && DebugAllocatorLiveBytes(&dbg) == (32 + 48);
DebugAllocatorDeinit(&dbg); // logs the leaks
return ok;
}- In
AllocDebug.c:138:
if (p2)
AllocatorFree(adbg, p2);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:160:
if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:191:
ok = ok && (VecPtrAt(&dbg.freed, 2)->ptr == p3) && (VecPtrAt(&dbg.freed, 2)->requested_size == 64);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:215:
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:240:
if (grown)
AllocatorFree(adbg, grown);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:253:
ok = ok && (nil == NULL) && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:266:
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:287:
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:341:
ok = ok && (DebugAllocatorOverflows(&dbg) == 1);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:382:
ok = ok && (VecPtrAt(&dbg.freed, 0)->alloc_trace_n == live_n);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:417:
ok = ok && match;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:440:
ok = ok && (VecPtrAt(&dbg.freed, 0)->free_trace_n == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:466:
ok = ok && (VecPtrAt(&dbg.freed, 0)->free_trace_n == 2);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:491:
ok = ok && (VecPtrAt(&dbg.freed, 0)->free_trace_n <= DEBUG_ALLOCATOR_MAX_TRACE);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:509:
ok = ok && (AllocatorDeallocations(adbg) == 1);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:536:
ok = ok && (AllocatorBytesInUse(adbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:558:
ok = ok && (DebugAllocatorOverflows(&dbg) == 0);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:622:
AllocatorFree(adbg, p);
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:641:
if (p2)
AllocatorFree(adbg, p2);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:663:
// still 100 after frees (cumulative)
ok = ok && (AllocatorBytesRequested(adbg) == 100);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:680:
AllocatorFree(adbg, p);
ok = ok && (AllocatorBytesInUse(adbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:700:
// peak does not shrink on free
ok = ok && (AllocatorPeakBytesInUse(adbg) == 512);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:720:
if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:744:
if (small)
AllocatorFree(adbg, small);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:765:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:793:
if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:818:
if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:842:
if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:867:
ok = ok && (DebugAllocatorOverflows(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:888:
AllocatorFree(adbg, buf);
ok = ok && (DebugAllocatorOverflows(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:936:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:958:
if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
AllocDebug.c:985:
// The canary sits exactly at offset n; a one-past write corrupts it.
ok = ok && (DebugAllocatorOverflows(&dbg) == 1);
DebugAllocatorDeinit(&dbg);
return ok;
} if (grown)
AllocatorFree(adbg, grown);
DebugAllocatorDeinit(&dbg);
return ok;
} ok = ok && (DebugAllocatorOverflows(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
} if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
} AllocatorFree(adbg, q);
dbg.bytes_in_use = 0;
DebugAllocatorDeinit(&dbg);
return ok;
} AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
} if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
} }
DebugAllocatorDeinit(&dbg);
return ok;
} ok = ok && (AllocatorBytesInUse(adbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
} if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
} if (p)
AllocatorFree(adbg, p);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
ArgParse.c:1946:
bool ok = (rc == ARG_RUN_HELP) && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Init.c:232:
bool ok = LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Insert.c:279:
GraphDeinit(&graph);
DebugAllocatorDeinit(&dbg);
return result;
}- In
Insert.c:321:
GraphDeinit(&graph);
DebugAllocatorDeinit(&dbg);
return result;
}- In
Compare.c:729:
FloatDeinit(&b);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Compare.c:750:
IntDeinit(&b);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Compare.c:764:
FloatDeinit(&a);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Compare.c:778:
FloatDeinit(&a);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Compare.c:792:
FloatDeinit(&a);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Compare.c:806:
FloatDeinit(&a);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1004:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1029:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1053:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1078:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1101:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1124:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1147:
IntDeinit(&b);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1162:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1177:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1192:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1207:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1224:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1241:
IntDeinit(&b);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1256:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1271:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1286:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1301:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1318:
IntDeinit(&b);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1333:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1348:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1363:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1378:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1395:
IntDeinit(&b);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1410:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1425:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1440:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:1455:
FloatDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:672:
bool ok = LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:683:
bool ok = LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:700:
bool ok = LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:721:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:743:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:765:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:793:
IntDeinit(&r);
bool ok = LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:813:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:834:
StrDeinit(&out);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:849:
StrDeinit(&out);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:869:
FloatDeinit(&v);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Insert.c:1855:
VecDeinit(&vec);
result = result && (DebugAllocatorOverflows(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return result;
} ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
} ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
} ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}
DefaultAllocatorDeinit(&palloc);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3417:
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3695:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3714:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3733:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3752:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3771:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3790:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3807:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3830:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3852:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3871:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3890:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3915:
IntDeinit(&r3);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3943:
IntDeinit(&m2);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3962:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:3981:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4001:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4021:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4042:
IntDeinit(&rem);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4068:
IntDeinit(&rem);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4085:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4102:
IntDeinit(&nsq);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4119:
IntDeinit(&npw);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4146:
IntDeinit(&n2);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4167:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4189:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4211:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4238:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4259:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4278:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4299:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4320:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4342:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4361:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4383:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4404:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4425:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4448:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4470:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4489:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4509:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4529:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4548:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4567:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4587:
IntDeinit(&composite);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4604:
IntDeinit(&n);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4623:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4646:
IntDeinit(&r1);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4665:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4682:
IntDeinit(&r);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4720:
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4740:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4763:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4786:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4817:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4835:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Math.c:4851:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:1587:
IntDeinit(&v);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:1601:
IntDeinit(&v);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:1616:
IntDeinit(&out);
ok = ok && LEAK_CLEAN(dbg);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Convert.c:1635:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Write.c:4785:
StrDeinit(&out); \
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0); \
DebugAllocatorDeinit(&dbg); \
return ok- In
Write.c:4796:
StrDeinit(out);
bool ok = (DebugAllocatorLiveCount(dbg) == 0);
DebugAllocatorDeinit(dbg);
return ok;
}- In
Write.c:5476:
StrDeinit(&out);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
StrDeinit(&s);
HeapAllocatorDeinit(&sa);- In
Write.c:5497:
StrDeinit(&out);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
FloatDeinit(&f);
HeapAllocatorDeinit(&fa);- In
Write.c:5529:
FloatDeinit(&v);
HeapAllocatorDeinit(&fa);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Write.c:5555:
FloatDeinit(&v);
HeapAllocatorDeinit(&fa);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Write.c:5581:
FloatDeinit(&v);
HeapAllocatorDeinit(&fa);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Write.c:5608:
FloatDeinit(&v);
HeapAllocatorDeinit(&fa);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Write.c:5633:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Write.c:5657:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Write.c:5681:
StrDeinit(&out);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
StrDeinit(&s);
HeapAllocatorDeinit(&va);- In
Write.c:5694:
StrDeinit(&out);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
IntDeinit(&v);
HeapAllocatorDeinit(&va);- In
Write.c:5707:
StrDeinit(&out);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
FloatDeinit(&v);
HeapAllocatorDeinit(&va);- In
Write.c:5721:
StrDeinit(&out);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
BitVecDeinit(&v);
HeapAllocatorDeinit(&va);- In
Read.c:2504:
AllocatorFree(&dbg.base, s);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2519:
BitVecDeinit(&bv);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2544:
BitVecDeinit(&bv);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2557:
BitVecDeinit(&bv);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2573:
IntDeinit(&v);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2640:
FloatDeinit(&f);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2657:
FloatDeinit(&f);
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2735:
StrReadFmt(p, fmt, s); // reader frees s on the unterminated/error branch
bool ok = (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2748:
BitVecDeinit(&bv);
bool ok = (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2775:
StrReadFmt(p, "{}", s);
bool ok = (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2796:
FloatDeinit(&fv);
bool ok = (DebugAllocatorLiveCount(&dbg) == 0) && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2832:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Read.c:2859:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Init.c:300:
StrDeinit(&s);
DebugAllocatorDeinit(&dbg);
return pass;
}- In
Init.c:321:
}
DebugAllocatorDeinit(&dbg);
return result;
}- In
Remove.c:363:
result = result && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return result;
}- In
PdbCache.c:421:
FileRemove((Zstr)pe_path);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
PdbCache.c:460:
FileRemove((Zstr)pe_path);
FileRemove((Zstr)pdb_path);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
PdbCache.c:511:
FileRemove((Zstr)b_pe);
FileRemove((Zstr)b_pdb);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
PdbCache.c:551:
FileRemove((Zstr)pe_path);
FileRemove((Zstr)pdb_path);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
PdbCache.c:734:
FileRemove((Zstr)pe_path);
FileRemove((Zstr)pdb_path);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
PdbCache.c:824:
FileRemove((Zstr)b_pe);
FileRemove((Zstr)b_pdb);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
SysDns.c:1328:
drop_temp(&path);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
SysDns.c:2071:
bool ok = grew && back && r.allocator == NULL;
DebugAllocatorDeinit(&alloc);
return ok;
}- In
SysDns.c:2087:
bool back = DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok && back;
}- In
MachoCache.c:636:
FileRemove(bin_path);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
MachoCache.c:693:
FileRemove(bin_a);
FileRemove(bin_b);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
MachoCache.c:730:
FileRemove(dsym_path);
DirRemoveAll("/tmp/misra_mc_dsym.dSYM");
DebugAllocatorDeinit(&dbg);
return ok;
}- In
MachoCache.c:769:
FileRemove(dsym_path);
DirRemoveAll("/tmp/misra_mc_uuidmiss.dSYM");
DebugAllocatorDeinit(&dbg);
return ok;
}- In
MachoCache.c:814:
FileRemove(dsym_path);
DirRemoveAll("/tmp/misra_mc_dwarf.dSYM");
DebugAllocatorDeinit(&dbg);
return ok;
} FileRemove(dsym_path);
DirRemoveAll("/tmp/misra_bl_dwarf3.dSYM");
DebugAllocatorDeinit(&dbg);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
}
SymbolResolverDeinit(&res);
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
}
SymbolResolverDeinit(&res);
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
}
SymbolResolverDeinit(&res);
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
}
SymbolResolverDeinit(&res);
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
} ok = ok && DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
} ok = ok && DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
} ok = ok && DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
} ok = ok && DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok;
}- In
SidecarSub.c:63:
SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
}- In
SidecarSub.c:75:
ok = ok && DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok;
}- In
Sidecar.c:76:
SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
}- In
Sidecar.c:90:
ok = ok && DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok;
} SymbolResolver res;
if (!SymbolResolverInit(&res, ALLOCATOR_OF(&alloc))) {
DebugAllocatorDeinit(&alloc);
return false;
} ok = ok && DebugAllocatorLiveCount(&alloc) == baseline;
DebugAllocatorDeinit(&alloc);
return ok;
}- In
Pe.c:1583:
Pe pe;
if (!PeOpenFromMemoryCopy(&pe, blob, sizeof(blob), base)) {
DebugAllocatorDeinit(&alloc);
return false;
}- In
Pe.c:1593:
PeDeinit(&pe);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
Dns.c:1879:
bool match = (ok == false) && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return match;
}- In
Dns.c:1902:
bool match = (ok == false) && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return match;
}- In
Dns.c:1926:
bool match = (ok == false);
DebugAllocatorDeinit(&dbg);
return match;
}- In
Dns.c:2053:
DnsResponseDeinit(&resp);
DebugAllocatorDeinit(&dbg);
return match;
}- In
Dns.c:2093:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Dns.c:2161:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Dns.c:2189:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Pdb.c:2397:
Buf in = BufInit(base);
if (!BufReserve(&in, sizeof(sblob))) {
DebugAllocatorDeinit(&dbg);
return false;
}- In
Pdb.c:2414:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Pdb.c:2432:
bool ok = PdbOpenFromMemoryCopy(&pdb, xblob, sizeof(xblob), base);
if (!ok) {
DebugAllocatorDeinit(&dbg);
return false;
}- In
Pdb.c:2443:
ok = ok && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Pdb.c:3086:
// No heap write may have overrun any allocation (canary intact).
ok = ok && DebugAllocatorOverflows(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Pdb.c:3126:
PdbDeinit(&pdb);
ok = ok && DebugAllocatorOverflows(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
ProcMaps.c:329:
if (!pushed) {
ProcMapsDeinit(&pm);
DebugAllocatorDeinit(&alloc);
return false;
}- In
ProcMaps.c:346:
ProcMapsDeinit(&pm);
DebugAllocatorDeinit(&alloc);
return ok;
}- In
ProcMaps.c:367:
ProcMaps maps;
if (!proc_maps_load(&maps, base)) {
DebugAllocatorDeinit(&dbg);
return false;
}- In
ProcMaps.c:382:
ok = ok && after == before;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
ProcMaps.c:641:
File dir = FileOpen("/proc/self", "rb");
if (!FileIsOpen(&dir)) {
DebugAllocatorDeinit(&dbg);
return false;
}- In
ProcMaps.c:659:
ok = ok && (after == before);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Http.c:314:
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Http.c:338:
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Http.c:366:
bool ok = (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Http.c:404:
ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
MachO.c:1507:
bool ok = !opened && DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Dwarf.c:2638:
Elf elf;
if (!ElfOpenFromMemoryCopy(&elf, elfbuf, (size)elf_len, base)) {
DebugAllocatorDeinit(&dbg);
return false;
}- In
Dwarf.c:2661:
ElfDeinit(&elf);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Dwarf.c:2684:
Elf elf;
if (!ElfOpenFromMemoryCopy(&elf, elfbuf, (size)elf_len, base)) {
DebugAllocatorDeinit(&dbg);
return false;
}- In
Dwarf.c:2708:
ElfDeinit(&elf);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Dwarf.c:3413:
bool ok = !built && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Dwarf.c:3463:
bool ok = !built && (DebugAllocatorLiveCount(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Parse.c:652:
ok = DebugAllocatorLiveCount(&dbg) == 0;
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Parse.c:720:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Parse.c:751:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Parse.c:781:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}- In
Parse.c:822:
ok = ok && (DebugAllocatorLiveBytes(&dbg) == 0);
DebugAllocatorDeinit(&dbg);
return ok;
}