inline static void* fill_prefix(char* ptr) { uint32_t handle = skynet_current_handle(); size_t size = je_malloc_usable_size(ptr); uint32_t *p = (uint32_t *)(ptr + size - sizeof(uint32_t)); memcpy(p, &handle, sizeof(handle)); update_xmalloc_stat_alloc(handle, size); return ptr; }
inline static void* fill_prefix(char* ptr) { uint32_t handle = skynet_current_handle(); size_t size = je_malloc_usable_size(ptr); struct mem_cookie *p = (struct mem_cookie *)(ptr + size - sizeof(struct mem_cookie)); memcpy(&p->handle, &handle, sizeof(handle)); #ifdef MEMORY_CHECK uint32_t dogtag = MEMORY_ALLOCTAG; memcpy(&p->dogtag, &dogtag, sizeof(dogtag)); #endif update_xmalloc_stat_alloc(handle, size); return ptr; }