Clone data segments when specified with load args (#3463)

Follow-up on https://github.com/bytecodealliance/wasm-micro-runtime/pull/3389, specifically: https://github.com/bytecodealliance/wasm-micro-runtime/pull/3389#discussion_r1600872451

If we want to free the wasm binary buffer early, we need to clone the data segments into the module.
That's because, in case of [passive data segments](https://webassembly.github.io/threads/core/syntax/modules.html#syntax-data),
they can be referred during wasm execution.
This commit is contained in:
Enrico Loparco
2024-05-27 03:59:24 +02:00
committed by GitHub
parent f378edc408
commit 3b8ef89110
9 changed files with 81 additions and 60 deletions

View File

@ -1918,12 +1918,11 @@ wasm_runtime_detect_native_stack_overflow_size(wasm_exec_env_t exec_env,
/**
* Query whether the wasm binary buffer used to create the module can be freed
*
* @param module_inst the target module instance
* @param module the target module
* @return true if the wasm binary buffer can be freed
*/
WASM_RUNTIME_API_EXTERN bool
wasm_runtime_is_underlying_binary_freeable(
const wasm_module_inst_t module_inst);
wasm_runtime_is_underlying_binary_freeable(const wasm_module_t module);
#ifdef __cplusplus
}