Lines Matching refs:header
116 static void LogTagError(const Header* header, const void* pointer, const char* name) { in LogTagError() argument
120 if (header->tag == DEBUG_FREE_TAG) { in LogTagError()
123 g_debug->free_track->LogBacktrace(header); in LogTagError()
126 error_log("+++ ALLOCATION %p HAS INVALID TAG %" PRIx32 " (%s)", pointer, header->tag, name); in LogTagError()
136 static void* InitHeader(Header* header, void* orig_pointer, size_t size) { in InitHeader() argument
137 header->tag = DEBUG_TAG; in InitHeader()
138 header->orig_pointer = orig_pointer; in InitHeader()
139 header->size = size; in InitHeader()
141 header->set_zygote(); in InitHeader()
143 header->usable_size = g_dispatch->malloc_usable_size(orig_pointer); in InitHeader()
144 if (header->usable_size == 0) { in InitHeader()
148 header->usable_size -= g_debug->pointer_offset() + in InitHeader()
149 reinterpret_cast<uintptr_t>(header) - reinterpret_cast<uintptr_t>(orig_pointer); in InitHeader()
152 uint8_t* guard = g_debug->GetFrontGuard(header); in InitHeader()
157 uint8_t* guard = g_debug->GetRearGuard(header); in InitHeader()
161 header->usable_size = header->real_size(); in InitHeader()
166 BacktraceHeader* back_header = g_debug->GetAllocBacktrace(header); in InitHeader()
178 g_debug->track->Add(header, backtrace_found); in InitHeader()
181 return g_debug->GetPointer(header); in InitHeader()
272 Header* header = g_debug->GetHeader(pointer); in debug_malloc_usable_size() local
273 if (header->tag != DEBUG_TAG) { in debug_malloc_usable_size()
274 LogTagError(header, pointer, "malloc_usable_size"); in debug_malloc_usable_size()
278 return header->usable_size; in debug_malloc_usable_size()
304 Header* header = reinterpret_cast<Header*>( in debug_malloc() local
306 if (header == nullptr) { in debug_malloc()
309 pointer = InitHeader(header, header, size); in debug_malloc()
330 Header* header; in debug_free() local
332 header = g_debug->GetHeader(pointer); in debug_free()
333 if (header->tag != DEBUG_TAG) { in debug_free()
334 LogTagError(header, pointer, "free"); in debug_free()
337 free_pointer = header->orig_pointer; in debug_free()
340 if (!g_debug->front_guard->Valid(*g_debug, header)) { in debug_free()
341 g_debug->front_guard->LogFailure(*g_debug, header); in debug_free()
345 if (!g_debug->rear_guard->Valid(*g_debug, header)) { in debug_free()
346 g_debug->rear_guard->LogFailure(*g_debug, header); in debug_free()
353 BacktraceHeader* back_header = g_debug->GetAllocBacktrace(header); in debug_free()
356 g_debug->track->Remove(header, backtrace_found); in debug_free()
358 header->tag = DEBUG_FREE_TAG; in debug_free()
360 bytes = header->usable_size; in debug_free()
377 g_debug->free_track->Add(*g_debug, header); in debug_free()
428 Header* header = g_debug->GetHeader(reinterpret_cast<void*>(value)); in debug_memalign() local
429 pointer = InitHeader(header, pointer, bytes); in debug_memalign()
481 Header* header = g_debug->GetHeader(pointer); in debug_realloc() local
482 if (header->tag != DEBUG_TAG) { in debug_realloc()
483 LogTagError(header, pointer, "realloc"); in debug_realloc()
488 if (real_size == header->real_size()) { in debug_realloc()
493 if (real_size < header->usable_size) { in debug_realloc()
494 header->size = real_size; in debug_realloc()
496 header->set_zygote(); in debug_realloc()
501 header->usable_size = header->real_size(); in debug_realloc()
502 memset(g_debug->GetRearGuard(header), g_debug->config().rear_guard_value, in debug_realloc()
515 prev_size = header->usable_size; in debug_realloc()
571 Header* header = reinterpret_cast<Header*>( in debug_calloc() local
573 if (header == nullptr) { in debug_calloc()
576 memset(header, 0, g_dispatch->malloc_usable_size(header)); in debug_calloc()
577 return InitHeader(header, header, size); in debug_calloc()
615 const Header* header = reinterpret_cast<const Header*>(pointer); in debug_iterate() local
617 if (g_debug->track->Contains(header)) { in debug_iterate()
619 ctx->callback(reinterpret_cast<uintptr_t>(g_debug->GetPointer(header)), in debug_iterate()
620 header->usable_size, ctx->arg); in debug_iterate()
650 Header* header; in debug_malloc_backtrace() local
652 header = g_debug->GetHeader(pointer); in debug_malloc_backtrace()
653 if (!g_debug->track->Contains(header)) { in debug_malloc_backtrace()
657 header = reinterpret_cast<Header*>(pointer); in debug_malloc_backtrace()
659 if (header->tag != DEBUG_TAG) { in debug_malloc_backtrace()
663 BacktraceHeader* back_header = g_debug->GetAllocBacktrace(header); in debug_malloc_backtrace()