bugfix: miscellaneous missing in refactor
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 22 Apr 2023 01:04:49 +0000 (20:04 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 22 Apr 2023 01:04:49 +0000 (20:04 -0500)
compiler/src/onyx.c
compiler/src/types.c
compiler/src/wasm_emit.c

index 2b1b9a5b3c7aa282cd250d2477704ed15cefb601..35961c69e34221956dae9971e32fc80c70a2b02a 100644 (file)
@@ -964,6 +964,8 @@ int main(int argc, char *argv[]) {
 
         #ifdef ENABLE_RUN_WITH_WASMER
         case ONYX_COMPILE_ACTION_RUN_WASM:
+            global_heap_allocator = bh_heap_allocator();
+            context_init(&compile_opts);
             compiler_progress = ONYX_COMPILER_PROGRESS_SUCCESS;
             if (!onyx_run_wasm_file(context.options->target_file)) {
                 compiler_progress = ONYX_COMPILER_PROGRESS_ERROR;
index 923ef8df0f89afa825f58167aceb2c85aadad284..3887ff13283a5fc9646e445c7d43ed4ab6ae2a6a 100644 (file)
@@ -251,7 +251,7 @@ u32 type_size_of(Type* type) {
         case Type_Kind_Basic:    return type->Basic.size;
         case Type_Kind_MultiPointer:
         case Type_Kind_Pointer:  return POINTER_SIZE;
-        case Type_Kind_Function: return 4 + 4 + POINTER_SIZE;
+        case Type_Kind_Function: return 3 * POINTER_SIZE;
         case Type_Kind_Array:    return type->Array.size;
         case Type_Kind_Struct:   return type->Struct.size;
         case Type_Kind_Enum:     return type_size_of(type->Enum.backing);
@@ -1345,7 +1345,7 @@ b32 type_lookup_member_by_idx(Type* type, i32 idx, StructMember* smem) {
         }
 
         case Type_Kind_Function: {
-            if (idx > 3) return 0;
+            if (idx > 2) return 0;
 
             *smem = func_members[idx];
             return 1;
index af71ea5c927c774b526b4f36f00971f8b154dd92..4a5273d948fc27e5b8b0ed4b849ffdc087343988 100644 (file)
@@ -4510,6 +4510,8 @@ static b32 emit_constexpr_(ConstExprContext *ctx, AstTyped *node, u32 offset) {
     case Ast_Kind_Function: {
         AstFunction* func = (AstFunction *) node;
         CE(u32, 0) = get_element_idx(ctx->module, func);
+        CE(u32, 4) = 0;
+        CE(u32, 8) = 0;
         break;
     }