]> git.bts.cx Git - benzene.git/blobdiff - src/bz/memory/arena.c
Fixed Aseprite rendering system
[benzene.git] / src / bz / memory / arena.c
index 079bb8f7a9328df57caf70007a8793eca0ec35ed..42ffc98089f64871c0b047ec979fc0e990492c33 100644 (file)
@@ -1,6 +1,7 @@
 #include <bz/memory/arena_internal.h>
 
 #include <bz/memory/allocator.h>
 #include <bz/memory/arena_internal.h>
 
 #include <bz/memory/allocator.h>
+#include <bz/types/identifier_internal.h>
 #include <stdalign.h>
 #include <stddef.h>
 #include <string.h> // memset... :rolleyes:
 #include <stdalign.h>
 #include <stddef.h>
 #include <string.h> // memset... :rolleyes:
@@ -28,7 +29,9 @@ static size_t allocateSize(size_t size) {
 BZMemoryArenaID bzMemoryArenaCreate(BZMemoryArenaID hostArena, size_t size, const char *nameFmt, ...) {
        bzAssert(size == allocateSize(size));
        if (nextUserArena < kMaxUserArenas) {
 BZMemoryArenaID bzMemoryArenaCreate(BZMemoryArenaID hostArena, size_t size, const char *nameFmt, ...) {
        bzAssert(size == allocateSize(size));
        if (nextUserArena < kMaxUserArenas) {
-               return bzMemoryArenaAllocate(&userArenas[++nextUserArena], hostArena, size);
+               BZMemoryArenaID arena = bzMemoryArenaAllocate(&userArenas[++nextUserArena], hostArena, size);
+               bzInsertIdentifier(((char *)arena->identifier), nameFmt);
+               return arena;
        } else {
                bzError("Too many arenas");
                return NULL;
        } else {
                bzError("Too many arenas");
                return NULL;
@@ -107,7 +110,7 @@ void *_bzMemoryAlloc(BZMemoryArenaID arena, size_t size, const char *filename, s
                arena->allocationOffsetBottom += fullSize;
        }
        
                arena->allocationOffsetBottom += fullSize;
        }
        
-       bzAssertMessage(ptr != NULL, "Arena is out of memory, failed %s:%d", filename, lineNumber);
+       bzAssertMessage(ptr != NULL, "Arena '%s' is out of memory, failed %s:%d", arena->identifier, filename, lineNumber);
 
        return ptr;
 }
 
        return ptr;
 }