fixed: function pointers in static data
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 21 Apr 2023 21:58:20 +0000 (16:58 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 21 Apr 2023 21:58:20 +0000 (16:58 -0500)
compiler/src/onyx.c
compiler/src/wasm_type_table.h

index cf572acb02650ea881c9bac8605b95e1bfbda33a..2b1b9a5b3c7aa282cd250d2477704ed15cefb601 100644 (file)
@@ -885,7 +885,7 @@ static b32 onyx_run_module(bh_buffer code_buffer) {
 }
 
 static b32 onyx_run_wasm_file(const char *filename) {
-    bh_file_contents contents = bh_file_read_contents(global_heap_allocator, filename);
+    bh_file_contents contents = bh_file_read_contents(bh_heap_allocator(), filename);
 
     bh_buffer code_buffer;
     code_buffer.data = contents.data;
index 33f4c5b870e01f08512040c405d8311d90bc9907..a5ef955198d39fb347fc4742a84f95bb84232b74 100644 (file)
@@ -415,6 +415,8 @@ static u64 build_type_table(OnyxWasmModule* module) {
                         u32 data_loc = table_buffer.length;
                         u32 func_idx = get_element_idx(module, node);
                         bh_buffer_write_u32(&table_buffer, func_idx);
+                        bh_buffer_write_u32(&table_buffer, 0);
+                        bh_buffer_write_u32(&table_buffer, 0);
                         
                         bh_arr_push(method_data, ((StructMethodData) {
                             .name_loc = name_loc,
@@ -843,6 +845,8 @@ static u64 build_tagged_procedures(OnyxWasmModule *module) {
         assert(func->entity && func->entity->package);
 
         bh_buffer_write_u32(&tag_proc_buffer, get_element_idx(module, func));
+        bh_buffer_write_u32(&tag_proc_buffer, 0);
+        bh_buffer_write_u32(&tag_proc_buffer, 0);
         bh_buffer_write_u32(&tag_proc_buffer, func->type->id);
         WRITE_SLICE(tag_array_base, tag_count);
         bh_buffer_write_u32(&tag_proc_buffer, func->entity->package->id);