scripting: Added function pointer interface for malloc and free to vm
authorLukas Krickl <lukas@krickl.dev>
Sun, 8 Mar 2026 15:25:06 +0000 (16:25 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sun, 8 Mar 2026 15:25:06 +0000 (16:25 +0100)
src/l_lsl.c
src/l_lsl.h
src/u_mem.h

index 87b918c3f7532676fc047a7b3a6268089f609d7b..4c497d65a032b78e799e506ba71c32e41c817fb8 100644 (file)
@@ -5,6 +5,10 @@ struct l_lsl_vm l_lsl_vm_init() {
        struct l_lsl_vm v;
        u_memset(&v, 0, sizeof(v));
 
+       v.malloc = u_malloc;
+       v.free = u_free;
+       v.realloc = u_realloc;
+
        return v;
 }
 
index 515d7fd330fa7b8bff677684998e7676c9ef5e6f..59822019bb3287a625ea6647eca37056e263196c 100644 (file)
@@ -174,6 +174,10 @@ struct l_lsl_vm {
        enum l_lsl_flags flags;
 
        struct l_lsl_table global_table;
+
+       u_malloc_fp malloc;
+       u_free_fp free;
+       u_realloc_fp realloc;
 };
 
 
index 192df5d879c17771cc3f767783a88c87801c8be2..7482f2f345af699e5c1336c3abdd60e30803124e 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef U_MEM_H__
 #define U_MEM_H__
 
+typedef void * (*u_malloc_fp)(size_t size);
+typedef void (*u_free_fp)(void *ptr);
+typedef void * (*u_realloc_fp)(void *ptr, size_t size);
 
 void *u_memset(void *src, int count, size_t n);
 void *u_memcpy(void *det, const void *src, size_t n);