Removed nonstandard C constructor attribute

This commit is contained in:
2023-01-28 06:06:04 +00:00
parent c86c5800a7
commit 667efc2feb
2 changed files with 4 additions and 8 deletions

View File

@@ -7,7 +7,7 @@
#include <stdlib.h> #include <stdlib.h>
//default allocator //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) { if (newSize == 0 && oldSize == 0) {
//causes issues, so just skip out with a NO-OP //causes issues, so just skip out with a NO-OP
return NULL; return NULL;
@@ -30,12 +30,7 @@ static void* defaultMemoryAllocator(void* pointer, size_t oldSize, size_t newSiz
} }
//static variables //static variables
static Toy_MemoryAllocatorFn allocator; static Toy_MemoryAllocatorFn allocator = Toy_private_defaultMemoryAllocator;
//preload
static void __attribute__((constructor)) preloadMemoryAllocator() {
Toy_setMemoryAllocator(defaultMemoryAllocator);
}
//exposed API //exposed API
void* Toy_reallocate(void* pointer, size_t oldSize, size_t newSize) { void* Toy_reallocate(void* pointer, size_t oldSize, size_t newSize) {

View File

@@ -11,7 +11,8 @@ STATIC_ASSERT(sizeof(int) == 4);
STATIC_ASSERT(sizeof(char) == 1); STATIC_ASSERT(sizeof(char) == 1);
//memory allocation //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) { void Toy_setRefStringAllocatorFn(Toy_RefStringAllocatorFn allocator) {
allocate = allocator; allocate = allocator;