@@ -75,8 +75,7 @@ pub fn consume_fuel(
7575 . fuel_mut ( )
7676 . consume_fuel_unchecked ( u64:: from ( fuel) ) ;
7777 if let Err ( FuelError :: OutOfFuel { required_fuel } ) = consumption_result {
78- state. done ( DoneReason :: OutOfFuel { required_fuel } ) ;
79- return exec_break ! ( ip, sp, mem0, mem0_len, instance) ;
78+ done ! ( state, DoneReason :: OutOfFuel { required_fuel } ) ;
8079 }
8180 dispatch ! ( state, ip, sp, mem0, mem0_len, instance)
8281}
@@ -195,7 +194,7 @@ pub fn global_set_64(
195194pub fn call_internal (
196195 state : & mut VmState ,
197196 ip : Ip ,
198- sp : Sp ,
197+ _sp : Sp ,
199198 mem0 : Mem0Ptr ,
200199 mem0_len : Mem0Len ,
201200 instance : NonNull < InstanceEntity > ,
@@ -208,15 +207,15 @@ pub fn call_internal(
208207 . push_frame ( Some ( caller_ip) , callee_ip, params, size, None )
209208 {
210209 Ok ( sp) => sp,
211- Err ( trap) => break_with_trap ! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
210+ Err ( trap) => done ! ( state, trap ) ,
212211 } ;
213212 dispatch ! ( state, callee_ip, callee_sp, mem0, mem0_len, instance)
214213}
215214
216215pub fn call_imported (
217216 state : & mut VmState ,
218217 ip : Ip ,
219- sp : Sp ,
218+ _sp : Sp ,
220219 mem0 : Mem0Ptr ,
221220 mem0_len : Mem0Len ,
222221 instance : NonNull < InstanceEntity > ,
@@ -239,7 +238,7 @@ pub fn call_imported(
239238 ( instance != callee_instance) . then_some ( callee_instance) ,
240239 ) {
241240 Ok ( sp) => sp,
242- Err ( trap) => break_with_trap ! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
241+ Err ( trap) => done ! ( state, trap ) ,
243242 } ;
244243 let ( instance, mem0, mem0_len) =
245244 update_instance ( state. store , instance, callee_instance, mem0, mem0_len) ;
@@ -271,7 +270,7 @@ pub fn call_indirect(
271270 ) = unsafe { decode_op ( ip) } ;
272271 let func = match resolve_indirect_func ( index, table, func_type, state, sp, instance) {
273272 Ok ( func) => func,
274- Err ( trap) => break_with_trap ! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
273+ Err ( trap) => done ! ( state, trap ) ,
275274 } ;
276275 let func = resolve_func ( state. store , & func) ;
277276 let ( callee_ip, sp, mem0, mem0_len, instance) = match func {
@@ -290,7 +289,7 @@ pub fn call_indirect(
290289 ( instance != callee_instance) . then_some ( callee_instance) ,
291290 ) {
292291 Ok ( sp) => sp,
293- Err ( trap) => break_with_trap ! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
292+ Err ( trap) => done ! ( state, trap ) ,
294293 } ;
295294 let ( instance, mem0, mem0_len) =
296295 update_instance ( state. store , instance, callee_instance, mem0, mem0_len) ;
@@ -410,19 +409,10 @@ pub fn memory_grow(
410409 }
411410 }
412411 Err ( StoreError :: External ( MemoryError :: OutOfFuel { required_fuel } ) ) => {
413- state. done ( DoneReason :: OutOfFuel { required_fuel } ) ;
414- return exec_break ! ( ip, sp, mem0, mem0_len, instance) ;
412+ done ! ( state, DoneReason :: OutOfFuel { required_fuel } ) ;
415413 }
416414 Err ( StoreError :: External ( MemoryError :: ResourceLimiterDeniedAllocation ) ) => {
417- break_with_trap ! (
418- TrapCode :: GrowthOperationLimited ,
419- state,
420- ip,
421- sp,
422- mem0,
423- mem0_len,
424- instance
425- )
415+ done ! ( state, TrapCode :: GrowthOperationLimited ) ;
426416 }
427417 Err ( StoreError :: Internal ( _error) ) => {
428418 // TODO: we do not want to panic in the executor handlers so we somehow
@@ -505,7 +495,7 @@ macro_rules! handler_unary {
505495 let value = get_value( value, sp) ;
506496 let value = match $eval( value) . into_trap_result( ) {
507497 Ok ( value) => value,
508- Err ( trap) => break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
498+ Err ( trap) => done! ( state, trap ) ,
509499 } ;
510500 set_value( sp, result, value) ;
511501 dispatch!( state, ip, sp, mem0, mem0_len, instance)
@@ -594,7 +584,7 @@ macro_rules! handler_binary {
594584 let value = match $eval( lhs, rhs) . into_trap_result( ) {
595585 Ok ( value) => value,
596586 Err ( trap) => {
597- break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance )
587+ done! ( state, trap )
598588 } ,
599589 } ;
600590 set_value( sp, result, value) ;
@@ -1044,7 +1034,7 @@ macro_rules! handler_load_ss {
10441034 let mem_bytes = memory_bytes( memory, mem0, mem0_len, instance, state) ;
10451035 let loaded = match $load( mem_bytes, ptr, offset) {
10461036 Ok ( loaded) => loaded,
1047- Err ( trap) => break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
1037+ Err ( trap) => done! ( state, trap ) ,
10481038 } ;
10491039 set_value( sp, result, loaded) ;
10501040 dispatch!( state, ip, sp, mem0, mem0_len, instance)
@@ -1090,7 +1080,7 @@ macro_rules! handler_load_si {
10901080 let mem_bytes = memory_bytes( memory, mem0, mem0_len, instance, state) ;
10911081 let loaded = match $load( mem_bytes, usize :: from( address) ) {
10921082 Ok ( loaded) => loaded,
1093- Err ( trap) => break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
1083+ Err ( trap) => done! ( state, trap ) ,
10941084 } ;
10951085 set_value( sp, result, loaded) ;
10961086 dispatch!( state, ip, sp, mem0, mem0_len, instance)
@@ -1137,7 +1127,7 @@ macro_rules! handler_load_mem0_offset16_ss {
11371127 let mem_bytes = mem0_bytes( mem0, mem0_len) ;
11381128 let loaded = match $load( mem_bytes, ptr, u64 :: from( u16 :: from( offset) ) ) {
11391129 Ok ( loaded) => loaded,
1140- Err ( trap) => break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance ) ,
1130+ Err ( trap) => done! ( state, trap ) ,
11411131 } ;
11421132 set_value( sp, result, loaded) ;
11431133 dispatch!( state, ip, sp, mem0, mem0_len, instance)
@@ -1185,7 +1175,7 @@ macro_rules! handler_store_sx {
11851175 let value: $hint = get_value( value, sp) ;
11861176 let mem_bytes = memory_bytes( memory, mem0, mem0_len, instance, state) ;
11871177 if let Err ( trap) = $store( mem_bytes, ptr, offset, value. into( ) ) {
1188- break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance )
1178+ done! ( state, trap )
11891179 }
11901180 dispatch!( state, ip, sp, mem0, mem0_len, instance)
11911181 }
@@ -1232,7 +1222,7 @@ macro_rules! handler_store_ix {
12321222 let value: $hint = get_value( value, sp) ;
12331223 let mem_bytes = memory_bytes( memory, mem0, mem0_len, instance, state) ;
12341224 if let Err ( trap) = $store( mem_bytes, usize :: from( address) , value. into( ) ) {
1235- break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance )
1225+ done! ( state, trap )
12361226 }
12371227 dispatch!( state, ip, sp, mem0, mem0_len, instance)
12381228 }
@@ -1280,7 +1270,7 @@ macro_rules! handler_store_mem0_offset16_sx {
12801270 let value: $hint = get_value( value, sp) ;
12811271 let mem_bytes = mem0_bytes( mem0, mem0_len) ;
12821272 if let Err ( trap) = $store( mem_bytes, ptr, u64 :: from( u16 :: from( offset) ) , value. into( ) ) {
1283- break_with_trap! ( trap , state, ip , sp , mem0 , mem0_len , instance )
1273+ done! ( state, trap )
12841274 }
12851275 dispatch!( state, ip, sp, mem0, mem0_len, instance)
12861276 }
0 commit comments