fixed: dyncallback problems
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 23 Oct 2023 14:44:37 +0000 (09:44 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 23 Oct 2023 14:44:37 +0000 (09:44 -0500)
compiler/src/wasm_runtime.c
shared/include/onyx_library.h

index 9e4b221f1da90a99ecdf8e4765e0d893f69f986d..cb68f7cd3ca1e5a97fc07f350cff793dd6e45663 100644 (file)
@@ -308,7 +308,7 @@ typedef struct DynCallbackContext {
 
 static DCsigchar __wasm_dyncallback(DCCallback *cb, DCArgs *args, DCValue *result, void *userdata) {
     DynCallbackContext *ctx = userdata;
-    int arg_count = bh_str_last_index_of(ctx->sig, ')');
+    int arg_count = bh_str_last_index_of(ctx->sig, ')') - 1;
 
     wasm_val_vec_t wasm_args;
     wasm_val_vec_new_uninitialized(&wasm_args, arg_count);
index 8b0d26ad876093a979a3e3e71bed136886881549..f00467248c03430b52948b2354e9953aaf6e8c51 100644 (file)
@@ -19,7 +19,6 @@ typedef struct OnyxRuntime {
     wasm_memory_t* wasm_memory;
     wasm_engine_t *wasm_engine;
     wasm_extern_vec_t wasm_imports;
-    wasm_table_t *wasm_func_table;
 
     int argc;
     char **argv;
@@ -39,6 +38,7 @@ typedef struct OnyxRuntime {
 
     // This is only set when using the OVMwasm runtime, as Wasmer's C-api does not allow
     // for this function to exist, yet.
+    wasm_table_t *wasm_func_table;
     void (*(*wasm_func_from_idx)(wasm_table_t *table, unsigned int index, char *signature))(void);
 } OnyxRuntime;