From 7e71450a76711809b251fe3d173a0dcb6359dedd Mon Sep 17 00:00:00 2001 From: fgsfds Date: Sun, 20 Aug 2023 14:56:07 +0200 Subject: [PATCH] port: wrap malloc & co in case we'll need allocation stats or something later --- port/include/system.h | 4 ++++ port/src/fs.c | 2 +- port/src/main.c | 2 +- port/src/romdata.c | 2 +- port/src/system.c | 15 +++++++++++++++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/port/include/system.h b/port/include/system.h index be03e0621..2159d92fb 100644 --- a/port/include/system.h +++ b/port/include/system.h @@ -10,4 +10,8 @@ void sysFatalError(const char *fmt, ...) __attribute__((noreturn)); void sysGetExecutablePath(char *outPath, const u32 outLen); +void *sysMemAlloc(const u32 size); +void *sysMemZeroAlloc(const u32 size); +void sysMemFree(void *ptr); + #endif diff --git a/port/src/fs.c b/port/src/fs.c index 50be2d2c9..2e2b0b322 100644 --- a/port/src/fs.c +++ b/port/src/fs.c @@ -78,7 +78,7 @@ void *fsFileLoad(const char *name, u32 *outSize) void *buf = NULL; if (size) { - buf = calloc(1, size + 1); // sick hack for a free null terminator + buf = sysMemZeroAlloc(size + 1); // sick hack for a free null terminator if (!buf) { fprintf(stderr, "fsFileLoad: could not alloc %d bytes for file: %s\n", size, fullName); fclose(f); diff --git a/port/src/main.c b/port/src/main.c index 5ac513609..dd72d562b 100644 --- a/port/src/main.c +++ b/port/src/main.c @@ -68,7 +68,7 @@ int main(int argc, const char **argv) g_OsMemSize = osGetMemSize(); g_MempHeapSize = g_OsMemSize; - g_MempHeap = calloc(1, g_MempHeapSize); + g_MempHeap = sysMemZeroAlloc(g_MempHeapSize); if (!g_MempHeap) { sysFatalError("Could not alloc %u bytes for memp heap.", g_MempHeapSize); } diff --git a/port/src/romdata.c b/port/src/romdata.c index 72453b640..ca8d8a0ec 100644 --- a/port/src/romdata.c +++ b/port/src/romdata.c @@ -149,7 +149,7 @@ static inline void romdataLoadRom(void) sysFatalError("Data segment too small (%u), need at least %u.", dataSegLen, ROMDATA_FILES_OFS); } - u8 *dataSeg = calloc(1, dataSegLen); + u8 *dataSeg = sysMemAlloc(dataSegLen); if (!dataSeg) { sysFatalError("Could not allocate %u bytes for data segment.", dataSegLen); } diff --git a/port/src/system.c b/port/src/system.c index 33cc89c8f..da5c33f8e 100644 --- a/port/src/system.c +++ b/port/src/system.c @@ -65,3 +65,18 @@ void sysGetExecutablePath(char *outPath, const u32 outLen) } SDL_free(sdlPath); } + +void *sysMemAlloc(const u32 size) +{ + return malloc(size); +} + +void *sysMemZeroAlloc(const u32 size) +{ + return calloc(1, size); +} + +void sysMemFree(void *ptr) +{ + free(ptr); +}