Skip to content

Commit

Permalink
fix command-reactor: Look for _initialize only if _start not found (#…
Browse files Browse the repository at this point in the history
…2891)

A wasm module can be either a command or a reactor, so it can export
either `_start` or `_initialize`. Currently, if a command module is run,
`iwasm` still looks for `_initialize`, resulting in the warning:
  `can not find an export 0 named _initialize in the module`.

Change to look for `_initialize` only if `_start` not found to resolve the issue.
  • Loading branch information
eloparco authored Dec 11, 2023
1 parent c6848e4 commit 6cb2ea4
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions core/iwasm/interpreter/wasm_loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -3994,19 +3994,23 @@ check_wasi_abi_compatibility(const WASMModule *module,
return false;
}
}

/* (func (export "_initialize") (...) */
initialize = wasm_loader_find_export(
module, "", "_initialize", EXPORT_KIND_FUNC, error_buf, error_buf_size);
if (initialize) {
WASMType *func_type =
module->functions[initialize->index - module->import_function_count]
->func_type;
if (func_type->param_count || func_type->result_count) {
set_error_buf(
error_buf, error_buf_size,
"the signature of builtin _initialize function is wrong");
return false;
else {
/* (func (export "_initialize") (...) */
initialize =
wasm_loader_find_export(module, "", "_initialize", EXPORT_KIND_FUNC,
error_buf, error_buf_size);
if (initialize) {
WASMType *func_type =
module
->functions[initialize->index
- module->import_function_count]
->func_type;
if (func_type->param_count || func_type->result_count) {
set_error_buf(
error_buf, error_buf_size,
"the signature of builtin _initialize function is wrong");
return false;
}
}
}

Expand Down

0 comments on commit 6cb2ea4

Please sign in to comment.