@@ -43,7 +43,7 @@ typedef float64 CellType_F64;
43
43
&& (app_addr) <= shared_heap_end_off - bytes + 1)
44
44
45
45
#define shared_heap_addr_app_to_native (app_addr , native_addr ) \
46
- native_addr = shared_heap_base_addr + ((app_addr)- shared_heap_start_off)
46
+ native_addr = shared_heap_base_addr + ((app_addr) - shared_heap_start_off)
47
47
48
48
#define CHECK_SHARED_HEAP_OVERFLOW (app_addr , bytes , native_addr ) \
49
49
if (app_addr_in_shared_heap(app_addr, bytes)) \
@@ -1670,7 +1670,8 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
1670
1670
{
1671
1671
uint32 ret_idx ;
1672
1672
WASMFuncType * func_type ;
1673
- uint32 off , ret_offset ;
1673
+ int32 off ;
1674
+ uint32 ret_offset ;
1674
1675
uint8 * ret_types ;
1675
1676
if (cur_func -> is_import_func )
1676
1677
func_type = cur_func -> u .func_import -> func_type ;
@@ -1682,9 +1683,9 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
1682
1683
ret_offset = prev_frame -> ret_offset ;
1683
1684
1684
1685
for (ret_idx = 0 ,
1685
- off = sizeof (int16 ) * (func_type -> result_count - 1 );
1686
+ off = ( int32 ) sizeof (int16 ) * (func_type -> result_count - 1 );
1686
1687
ret_idx < func_type -> result_count ;
1687
- ret_idx ++ , off -= sizeof (int16 )) {
1688
+ ret_idx ++ , off -= ( int32 ) sizeof (int16 )) {
1688
1689
if (ret_types [ret_idx ] == VALUE_TYPE_I64
1689
1690
|| ret_types [ret_idx ] == VALUE_TYPE_F64 ) {
1690
1691
PUT_I64_TO_ADDR (prev_frame -> lp + ret_offset ,
0 commit comments