Add wasm-c-api nested function calls sample (#652)
And enable to copy back the return value of wasm main function when calling wasm_application_execute_main, add license headers in wasm-c-api samples, fix several issues reported by klocwork.
This commit is contained in:
@ -182,6 +182,10 @@ wasm_application_execute_main(WASMModuleInstanceCommon *module_inst,
|
||||
|
||||
ret = wasm_runtime_create_exec_env_and_call_wasm(module_inst, func,
|
||||
argc1, argv1);
|
||||
if (ret && func_type->result_count > 0 && argc > 0 && argv)
|
||||
/* copy the return value */
|
||||
*(int*)argv = (int)argv1[0];
|
||||
|
||||
if (argv_buf_offset)
|
||||
wasm_runtime_module_free(module_inst, argv_buf_offset);
|
||||
return ret;
|
||||
@ -669,4 +673,4 @@ fail:
|
||||
bh_assert(exception);
|
||||
os_printf("%s\n", exception);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -495,7 +495,9 @@ wasm_runtime_call_wasm_v(wasm_exec_env_t exec_env,
|
||||
*
|
||||
* @param module_inst the WASM module instance
|
||||
* @param argc the number of arguments
|
||||
* @param argv the arguments array
|
||||
* @param argv the arguments array, if the main function has return value,
|
||||
* *(int*)argv stores the return value of the called main function after
|
||||
* this function returns.
|
||||
*
|
||||
* @return true if the main function is called, false otherwise and exception
|
||||
* will be thrown, the caller can call wasm_runtime_get_exception to get
|
||||
|
||||
Reference in New Issue
Block a user