Add missing memory profiler events to Unix platforms
This commit is contained in:
@@ -22,7 +22,6 @@ void* UnixPlatform::Allocate(uint64 size, uint64 alignment)
|
|||||||
{
|
{
|
||||||
uint32_t pad = sizeof(offset_t) + (alignment - 1);
|
uint32_t pad = sizeof(offset_t) + (alignment - 1);
|
||||||
void* p = malloc(size + pad);
|
void* p = malloc(size + pad);
|
||||||
|
|
||||||
if (p)
|
if (p)
|
||||||
{
|
{
|
||||||
// Add the offset size to malloc's pointer
|
// Add the offset size to malloc's pointer
|
||||||
@@ -31,8 +30,10 @@ void* UnixPlatform::Allocate(uint64 size, uint64 alignment)
|
|||||||
// Calculate the offset and store it behind aligned pointer
|
// Calculate the offset and store it behind aligned pointer
|
||||||
*((offset_t*)ptr - 1) = (offset_t)((uintptr_t)ptr - (uintptr_t)p);
|
*((offset_t*)ptr - 1) = (offset_t)((uintptr_t)ptr - (uintptr_t)p);
|
||||||
}
|
}
|
||||||
|
#if COMPILE_WITH_PROFILER
|
||||||
|
OnMemoryAlloc(ptr, size);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,11 +41,14 @@ void UnixPlatform::Free(void* ptr)
|
|||||||
{
|
{
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
|
#if COMPILE_WITH_PROFILER
|
||||||
|
OnMemoryFree(ptr);
|
||||||
|
#endif
|
||||||
// Walk backwards from the passed-in pointer to get the pointer offset
|
// Walk backwards from the passed-in pointer to get the pointer offset
|
||||||
offset_t offset = *((offset_t*)ptr - 1);
|
offset_t offset = *((offset_t*)ptr - 1);
|
||||||
|
|
||||||
// Get original pointer
|
// Get original pointer
|
||||||
void* p = (void *)((uint8_t *)ptr - offset);
|
void* p = (void*)((uint8_t*)ptr - offset);
|
||||||
|
|
||||||
// Free memory
|
// Free memory
|
||||||
free(p);
|
free(p);
|
||||||
|
|||||||
Reference in New Issue
Block a user