ProcMapsDeinit
Description
Release storage owned by a ProcMaps. Safe on a zeroed struct. Storage is reclaimed through each container’s inline allocator — no separate allocator argument is needed.
Success
Returns to the caller. *self is zeroed.
Failure
Function cannot fail. NULL self is a no-op.
Usage example (Cross-references)
Usage examples (Cross-references)
}
VecDeinit(&self->cache);
ProcMapsDeinit(&self->maps);
MemSet(self, 0, sizeof(*self));
}- In
ProcMaps.c:189:
}
if (!VecPushBackR(&out->entries, e)) {
ProcMapsDeinit(out);
return false;
}- In
ProcMaps.c:238:
if (!FileIsOpen(&f)) {
LOG_ERROR("ProcMapsLoad: FileOpen(/proc/self/maps) failed");
ProcMapsDeinit(out);
return false;
}- In
ProcMaps.c:245:
if (!ok) {
LOG_ERROR("ProcMapsLoad: FileRead failed");
ProcMapsDeinit(out);
return false;
}- In
ProcMaps.c:250:
if (StrLen(&out->raw) == 0) {
LOG_ERROR("ProcMapsLoad: /proc/self/maps was empty");
ProcMapsDeinit(out);
return false;
}- In
ProcMaps.c:265:
if (!FileIsOpen(f)) {
LOG_ERROR("ProcMapsLoadFrom: file is not open");
ProcMapsDeinit(out);
return false;
}- In
ProcMaps.c:270:
if (!proc_maps_read_all(f, &out->raw)) {
LOG_ERROR("ProcMapsLoadFrom: FileRead failed");
ProcMapsDeinit(out);
return false;
}- In
ProcMaps.c:285:
if (len) {
if (!StrReserve(&out->raw, len + 1)) {
ProcMapsDeinit(out);
return false;
}- In
ProcMaps.c:294:
}
void ProcMapsDeinit(ProcMaps *self) {
if (!self)
return; }
}
ProcMapsDeinit(&maps);
}
DefaultAllocatorDeinit(&a);- In
Bias.c:45:
}
}
ProcMapsDeinit(&maps);
}
DefaultAllocatorDeinit(&a);- In
ProcMaps.c:49:
ok = ok && any_exec;
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:70:
bool ok = entry != NULL && (entry->perms & PROC_MAP_PERM_EXEC) != 0;
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:95:
bool ok = VecLen(&maps.entries) > 5;
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:121:
ok = ok && fn_addr >= e->start && fn_addr < e->end;
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:152:
(void)local;
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:192:
}
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:234:
}
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:259:
bool ok = e == NULL;
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:305:
}
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:328:
bool pushed = VecPushBackR(&pm.entries, e0) && VecPushBackR(&pm.entries, e1) && VecPushBackR(&pm.entries, e2);
if (!pushed) {
ProcMapsDeinit(&pm);
DebugAllocatorDeinit(&alloc);
return false;- In
ProcMaps.c:345:
ok = ok && h0 != NULL && h0->start == 0x1000 && h1 != NULL && h1->start == 0x3000;
ProcMapsDeinit(&pm);
DebugAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:376:
bool ok = during > before;
ProcMapsDeinit(&maps);
// After Deinit every load allocation is gone again.
- In
ProcMaps.c:409:
}
ProcMapsDeinit(&maps);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:443:
}
ProcMapsDeinit(&m);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:466:
}
ProcMapsDeinit(&m);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:488:
}
ProcMapsDeinit(&m);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:508:
bool ok = VecLen(&m.entries) == 0;
ProcMapsDeinit(&m);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:532:
}
ProcMapsDeinit(&m);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:556:
}
ProcMapsDeinit(&m);
DefaultAllocatorDeinit(&alloc);
return ok;- In
ProcMaps.c:617:
ok = e != NULL && e->start == 0xdeadbeef000ULL && e->end == 0xdeadbeef100ULL &&
ZstrCompare(e->path, "/late") == 0;
ProcMapsDeinit(&m);
}
Last updated on