diff options
Diffstat (limited to 'MemoryManager.c')
| -rw-r--r-- | MemoryManager.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/MemoryManager.c b/MemoryManager.c new file mode 100644 index 0000000..68dab6e --- /dev/null +++ b/MemoryManager.c @@ -0,0 +1,31 @@ +#include "MemoryManager.h" +#include <stdlib.h> + +Result std_alloc(MemoryManager mm, void** ptr, usize size) { + *ptr = malloc(size); + return (*ptr == NULL) ? R_Err : R_Ok; +} + +Result std_realloc(MemoryManager mm, void** ptr, usize size) { + *ptr = realloc(*ptr, size); + return (*ptr == NULL) ? R_Err : R_Ok; +} + +Result std_free(MemoryManager mm, void** ptr) { + free(*ptr); + *ptr = NULL; + return R_Ok; +} + +Result std_destroy(MemoryManager *mm) { + return R_Unavailable; +} + +MemoryManager M_std() { + return (MemoryManager){ + .alloc = &std_alloc, + .realloc = &std_realloc, + .free = &std_free, + .destroy = &std_destroy, + }; +} |
