Add API wasm_runtime_set_module_inst (#1286)

Add API wasm_runtime_set_module_inst, per request from #1275
This commit is contained in:
Wenyong Huang 2022-07-14 11:36:11 +08:00 committed by GitHub
parent d08e13c5ad
commit 0ec27af9df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 0 deletions

View File

@ -178,6 +178,13 @@ wasm_exec_env_get_module_inst(WASMExecEnv *exec_env)
return exec_env->module_inst;
}
void
wasm_exec_env_set_module_inst(WASMExecEnv *exec_env,
WASMModuleInstanceCommon *const module_inst)
{
exec_env->module_inst = module_inst;
}
void
wasm_exec_env_set_thread_info(WASMExecEnv *exec_env)
{

View File

@ -255,6 +255,10 @@ wasm_exec_env_get_cur_frame(WASMExecEnv *exec_env)
struct WASMModuleInstanceCommon *
wasm_exec_env_get_module_inst(WASMExecEnv *exec_env);
void
wasm_exec_env_set_module_inst(
WASMExecEnv *exec_env, struct WASMModuleInstanceCommon *const module_inst);
void
wasm_exec_env_set_thread_info(WASMExecEnv *exec_env);

View File

@ -1180,6 +1180,13 @@ wasm_runtime_get_module_inst(WASMExecEnv *exec_env)
return wasm_exec_env_get_module_inst(exec_env);
}
void
wasm_runtime_set_module_inst(WASMExecEnv *exec_env,
WASMModuleInstanceCommon *const module_inst)
{
wasm_exec_env_set_module_inst(exec_env, module_inst);
}
void *
wasm_runtime_get_function_attachment(WASMExecEnv *exec_env)
{

View File

@ -507,6 +507,11 @@ wasm_runtime_destroy_exec_env(WASMExecEnv *exec_env);
WASM_RUNTIME_API_EXTERN WASMModuleInstanceCommon *
wasm_runtime_get_module_inst(WASMExecEnv *exec_env);
/* See wasm_export.h for description */
WASM_RUNTIME_API_EXTERN void
wasm_runtime_set_module_inst(WASMExecEnv *exec_env,
WASMModuleInstanceCommon *const module_inst);
/* See wasm_export.h for description */
WASM_RUNTIME_API_EXTERN void *
wasm_runtime_get_function_attachment(WASMExecEnv *exec_env);

View File

@ -539,6 +539,21 @@ wasm_runtime_thread_env_inited(void);
WASM_RUNTIME_API_EXTERN wasm_module_inst_t
wasm_runtime_get_module_inst(wasm_exec_env_t exec_env);
/**
* Set WASM module instance of execution environment
* Caution:
* normally the module instance is bound with the execution
* environment one by one, if multiple module instances want
* to share to the same execution environment, developer should
* be responsible for the backup and restore of module instance
*
* @param exec_env the execution environment
* @param module_inst the WASM module instance to set
*/
WASM_RUNTIME_API_EXTERN void
wasm_runtime_set_module_inst(wasm_exec_env_t exec_env,
const wasm_module_inst_t module_inst);
/**
* Call the given WASM function of a WASM module instance with
* arguments (bytecode and AoT).