mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-11 20:21:11 +00:00
EH: Fix broken stack usage calculation (#3121)
Fixes: https://github.com/bytecodealliance/wasm-micro-runtime/issues/3108
This commit is contained in:
parent
a32b082d2a
commit
529fa9dd17
|
@ -4412,19 +4412,20 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
|||
else {
|
||||
WASMFunction *cur_wasm_func = cur_func->u.func;
|
||||
WASMType *func_type;
|
||||
uint32 max_stack_cell_num = cur_wasm_func->max_stack_cell_num;
|
||||
|
||||
#if WASM_ENABLE_EXCE_HANDLING != 0
|
||||
/* account for exception handlers */
|
||||
/* bundle them here */
|
||||
uint32 eh_size =
|
||||
cur_wasm_func->exception_handler_count * sizeof(uint8 *);
|
||||
cur_wasm_func->max_stack_cell_num += eh_size;
|
||||
max_stack_cell_num += eh_size;
|
||||
#endif
|
||||
|
||||
func_type = cur_wasm_func->func_type;
|
||||
|
||||
all_cell_num = cur_func->param_cell_num + cur_func->local_cell_num
|
||||
+ cur_wasm_func->max_stack_cell_num
|
||||
+ max_stack_cell_num
|
||||
+ cur_wasm_func->max_block_num
|
||||
* (uint32)sizeof(WASMBranchBlock) / 4;
|
||||
|
||||
|
@ -4447,8 +4448,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
|||
|
||||
frame_sp = frame->sp_bottom =
|
||||
frame_lp + cur_func->param_cell_num + cur_func->local_cell_num;
|
||||
frame->sp_boundary =
|
||||
frame->sp_bottom + cur_wasm_func->max_stack_cell_num;
|
||||
frame->sp_boundary = frame->sp_bottom + max_stack_cell_num;
|
||||
|
||||
frame_csp = frame->csp_bottom =
|
||||
(WASMBranchBlock *)frame->sp_boundary;
|
||||
|
|
Loading…
Reference in New Issue
Block a user