Files
Gryphn/projects/validation_layers/allocators/allocator_checker.c
2025-08-09 20:04:34 -04:00

40 lines
1.3 KiB
C

#include "allocator_checker.h"
#include <core/src/gryphn_handles.h>
#include "core/src/instance/gryphn_debugger.h"
#include <stdio.h>
#include <stdlib.h>
void* gnMallocFunc (size_t size, void* userData) {
char outBuffer[500];
snprintf(outBuffer, sizeof(outBuffer), "Allocating %lu bytes with malloc", size);
gnDebuggerSetVerboseMessage(userData, (gnMessageData) {
.message = gnCreateString(outBuffer)
});
return malloc(size);
}
void* gnCallocFunc (int cnt, size_t size, void* userData) {
char outBuffer[500];
snprintf(outBuffer, sizeof(outBuffer), "Allocating %i items of %lu bytes with calloc", cnt, size);
gnDebuggerSetVerboseMessage(userData, (gnMessageData){
.message = gnCreateString(outBuffer)
});
return calloc(cnt, size);
}
void* gnReallocFunc (void* ptr, size_t size, void* userData) {
char outBuffer[500];
snprintf(outBuffer, sizeof(outBuffer), "Reallocating %p with new size %lu", ptr, size);
gnDebuggerSetVerboseMessage(userData, (gnMessageData){
.message = gnCreateString(outBuffer)
});
return realloc(ptr, size);
}
void gnFreeFunc (void* ptr, void* userData) {
char outBuffer[500];
snprintf(outBuffer, sizeof(outBuffer), "Freeing %p", ptr);
gnDebuggerSetVerboseMessage(userData, (gnMessageData){
.message = gnCreateString(outBuffer)
});
free(ptr);
}