From 722b5aed064cb9d2571c1cb8746514cdcfb7a140 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 16 Nov 2021 22:24:18 -0600 Subject: [PATCH] pointers everywhere! --- include/heartbreak.h | 16 ++++++++-------- src/heartbreak.c | 30 +++++++++++++++--------------- src/heartbreak_graphics.c | 2 +- src/heartbreak_input.c | 2 +- src/heartbreak_system.c | 2 +- src/heartbreak_window.c | 2 +- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/include/heartbreak.h b/include/heartbreak.h index f9accae..b5b39e5 100644 --- a/include/heartbreak.h +++ b/include/heartbreak.h @@ -37,7 +37,7 @@ extern ImmediateRenderer renderer; # define INTERNAL_GET_ARG_COUNT_PRIVATE(_0, _1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_, _14_, _15_, _16_, _17_, _18_, _19_, _20_, _21_, _22_, _23_, _24_, _25_, _26_, _27_, _28_, _29_, _30_, _31_, _32_, _33_, _34_, _35_, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, count, ...) count #endif -#define _VALS(...) ((WasmValkindBuffer) { GET_ARG_COUNT(__VA_ARGS__), __VA_ARGS__, 0 }) +#define _VALS(...) ((WasmValkindBuffer) { GET_ARG_COUNT(__VA_ARGS__), __VA_ARGS__ }) typedef struct { u32 count; @@ -58,9 +58,9 @@ typedef struct { #define HEARTBREAK_MODULE_NAME_GEN(m) CONCAT2(__heartbreak_module, m) #define HEARTBREAK_FUNC_NAME(m, n) CONCAT3(__heartbreak_internal, m, n) #define HEARTBREAK_DEF_NAME(m, n) CONCAT3(__heartbreak_internal_def, m, n) -#define HEARTBREAK_IMPORT_NAME(m, n) STRINGIFY1(m) "_" #n #define HEARTBREAK_PARAM_NAME(m, n) CONCAT3(__heartbreak_internal_param_buffer, m, n) #define HEARTBREAK_RESULT_NAME(m, n) CONCAT3(__heartbreak_internal_result_buffer, m, n) +#define HEARTBREAK_IMPORT_NAME(m, n) STRINGIFY1(m) "_" #n #define HEARTBREAK_DEF(name, params_types, result_types) \ wasm_trap_t* HEARTBREAK_FUNC_NAME(HEARTBREAK_MODULE_NAME, name)(const wasm_val_vec_t* params, wasm_val_vec_t* results); \ @@ -70,13 +70,13 @@ typedef struct { \ wasm_trap_t* HEARTBREAK_FUNC_NAME(HEARTBREAK_MODULE_NAME, name)(const wasm_val_vec_t* params, wasm_val_vec_t* results) -#define HEARTBREAK_FUNC(name) HEARTBREAK_DEF_NAME(HEARTBREAK_MODULE_NAME, name), -#define HEARTBREAK_MODULE WasmFuncDefinition HEARTBREAK_MODULE_NAME_GEN(HEARTBREAK_MODULE_NAME) [] = +#define HEARTBREAK_FUNC(name) & HEARTBREAK_DEF_NAME(HEARTBREAK_MODULE_NAME, name), +#define HEARTBREAK_MODULE WasmFuncDefinition *HEARTBREAK_MODULE_NAME_GEN(HEARTBREAK_MODULE_NAME) [] = // The Heartbreak modules -extern WasmFuncDefinition __heartbreak_module_system[]; -extern WasmFuncDefinition __heartbreak_module_graphics[]; -extern WasmFuncDefinition __heartbreak_module_input[]; -extern WasmFuncDefinition __heartbreak_module_window[]; +extern WasmFuncDefinition* __heartbreak_module_system[]; +extern WasmFuncDefinition* __heartbreak_module_graphics[]; +extern WasmFuncDefinition* __heartbreak_module_input[]; +extern WasmFuncDefinition* __heartbreak_module_window[]; #endif diff --git a/src/heartbreak.c b/src/heartbreak.c index fa5a21c..a4bdb00 100644 --- a/src/heartbreak.c +++ b/src/heartbreak.c @@ -24,32 +24,32 @@ wasm_instance_t* wasm_instance; wasm_memory_t* wasm_memory; wasm_table_t* wasm_func_table; -void build_heartbreak_imports(WasmFuncDefinition** out_wfds, i32* out_count) { - static WasmFuncDefinition* modules[] = { +void build_heartbreak_imports(WasmFuncDefinition*** out_wfds, i32* out_count) { + static WasmFuncDefinition** modules[] = { __heartbreak_module_system, __heartbreak_module_graphics, __heartbreak_module_input, __heartbreak_module_window, }; - i32 module_count = sizeof(modules) / sizeof(WasmFuncDefinition*); + i32 module_count = sizeof(modules) / sizeof(WasmFuncDefinition**); i32 count = 0; fori (i, 0, module_count) { - WasmFuncDefinition* wfd = modules[i]; - while (wfd->name != NULL) { + WasmFuncDefinition** wfd = modules[i]; + while (*wfd != NULL) { count += 1; wfd += 1; } } bh_allocator heap_allocator = bh_heap_allocator(); - WasmFuncDefinition* imports = bh_alloc(heap_allocator, sizeof(WasmFuncDefinition) * count); + WasmFuncDefinition** imports = bh_alloc(heap_allocator, sizeof(WasmFuncDefinition*) * count); i32 k = 0; fori (i, 0, module_count) { - WasmFuncDefinition* wfd = modules[i]; - while (wfd->name != NULL) { + WasmFuncDefinition** wfd = modules[i]; + while (*wfd != NULL) { imports[k++] = *wfd; wfd += 1; } @@ -101,7 +101,7 @@ void run_wasm_file(bh_buffer wasm_bytes) { wasmer_named_extern_vec_t wasi_imports; wasi_get_unordered_imports(store, wasm_module, wasi_env, &wasi_imports); - WasmFuncDefinition* defs; + WasmFuncDefinition** defs; i32 defs_count; build_heartbreak_imports(&defs, &defs_count); @@ -134,18 +134,18 @@ void run_wasm_file(bh_buffer wasm_bytes) { if (!wasm_name_equals(&heartbreak_name, module_name)) goto bad_import; fori (j, 0, (i32) defs_count) { - if (wasm_name_equals_string(import_name, defs[j].name)) { + if (wasm_name_equals_string(import_name, defs[j]->name)) { wasm_valtype_vec_t wasm_params; - wasm_valtype_vec_new_uninitialized(&wasm_params, defs[j].params->count); - fori (k, 0, defs[j].params->count) wasm_params.data[k] = wasm_valtype_new(defs[j].params->types[k]); + wasm_valtype_vec_new_uninitialized(&wasm_params, defs[j]->params->count); + fori (k, 0, defs[j]->params->count) wasm_params.data[k] = wasm_valtype_new(defs[j]->params->types[k]); wasm_valtype_vec_t wasm_results; - wasm_valtype_vec_new_uninitialized(&wasm_results, defs[j].results->count); - fori (k, 0, defs[j].results->count) wasm_results.data[k] = wasm_valtype_new(defs[j].results->types[k]); + wasm_valtype_vec_new_uninitialized(&wasm_results, defs[j]->results->count); + fori (k, 0, defs[j]->results->count) wasm_results.data[k] = wasm_valtype_new(defs[j]->results->types[k]); wasm_functype_t* wasm_functype = wasm_functype_new(&wasm_params, &wasm_results); - wasm_func_t* wasm_func = wasm_func_new(store, wasm_functype, defs[j].func); + wasm_func_t* wasm_func = wasm_func_new(store, wasm_functype, defs[j]->func); import = wasm_func_as_extern(wasm_func); goto import_found; } diff --git a/src/heartbreak_graphics.c b/src/heartbreak_graphics.c index 9563ab3..c7718ab 100644 --- a/src/heartbreak_graphics.c +++ b/src/heartbreak_graphics.c @@ -467,5 +467,5 @@ HEARTBREAK_MODULE { HEARTBREAK_FUNC(font_set) HEARTBREAK_FUNC(get_text_width) - { NULL } + NULL }; diff --git a/src/heartbreak_input.c b/src/heartbreak_input.c index 19f3560..3707768 100644 --- a/src/heartbreak_input.c +++ b/src/heartbreak_input.c @@ -39,5 +39,5 @@ HEARTBREAK_MODULE { HEARTBREAK_FUNC(mouse_get_y) HEARTBREAK_FUNC(mouse_is_down) - { NULL } + NULL }; diff --git a/src/heartbreak_system.c b/src/heartbreak_system.c index ac37ade..829d355 100644 --- a/src/heartbreak_system.c +++ b/src/heartbreak_system.c @@ -177,5 +177,5 @@ HEARTBREAK_MODULE { HEARTBREAK_FUNC(destroy) HEARTBREAK_FUNC(end_frame) - { NULL } + NULL }; diff --git a/src/heartbreak_window.c b/src/heartbreak_window.c index 385bf6d..722c08f 100644 --- a/src/heartbreak_window.c +++ b/src/heartbreak_window.c @@ -43,5 +43,5 @@ HEARTBREAK_MODULE { HEARTBREAK_FUNC(get_property) HEARTBREAK_FUNC(set_property) - { NULL } + NULL }; -- 2.25.1