diff --git a/source/toy_memory.c b/source/toy_memory.c index c70d978..1e9e8d1 100644 --- a/source/toy_memory.c +++ b/source/toy_memory.c @@ -7,7 +7,7 @@ #include //default allocator -static void* defaultMemoryAllocator(void* pointer, size_t oldSize, size_t newSize) { +void* Toy_private_defaultMemoryAllocator(void* pointer, size_t oldSize, size_t newSize) { if (newSize == 0 && oldSize == 0) { //causes issues, so just skip out with a NO-OP return NULL; @@ -30,12 +30,7 @@ static void* defaultMemoryAllocator(void* pointer, size_t oldSize, size_t newSiz } //static variables -static Toy_MemoryAllocatorFn allocator; - -//preload -static void __attribute__((constructor)) preloadMemoryAllocator() { - Toy_setMemoryAllocator(defaultMemoryAllocator); -} +static Toy_MemoryAllocatorFn allocator = Toy_private_defaultMemoryAllocator; //exposed API void* Toy_reallocate(void* pointer, size_t oldSize, size_t newSize) { diff --git a/source/toy_refstring.c b/source/toy_refstring.c index 5ff3d12..6442283 100644 --- a/source/toy_refstring.c +++ b/source/toy_refstring.c @@ -11,7 +11,8 @@ STATIC_ASSERT(sizeof(int) == 4); STATIC_ASSERT(sizeof(char) == 1); //memory allocation -static Toy_RefStringAllocatorFn allocate; +extern void* Toy_private_defaultMemoryAllocator(void* pointer, size_t oldSize, size_t newSize); +static Toy_RefStringAllocatorFn allocate = Toy_private_defaultMemoryAllocator; void Toy_setRefStringAllocatorFn(Toy_RefStringAllocatorFn allocator) { allocate = allocator;