@@ -138,7 +138,7 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
138138
139139 CallIndirect ( type_addr, table_addr) => {
140140 let table = store. get_table ( module. resolve_table_addr ( * table_addr) ) ?;
141- let table_idx = stack. values . pop_t :: < u32 > ( ) ?;
141+ let table_idx: u32 = stack. values . pop ( ) ?. into ( ) ;
142142
143143 // verify that the table is of the right type, this should be validated by the parser already
144144 let func_ref = {
@@ -188,7 +188,7 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
188188
189189 If ( args, else_offset, end_offset) => {
190190 // truthy value is on the top of the stack, so enter the then block
191- if stack. values . pop_t :: < i32 > ( ) ? != 0 {
191+ if i32 :: from ( stack. values . pop ( ) ?) != 0 {
192192 cf. enter_block (
193193 BlockFrame :: new (
194194 cf. instr_ptr ,
@@ -259,8 +259,8 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
259259 return Err ( Error :: Other ( format ! ( "br_table out of bounds: {} >= {}" , end, cf. instructions( ) . len( ) ) ) ) ;
260260 }
261261
262- let idx = stack. values . pop_t :: < i32 > ( ) ? as usize ;
263- match cf. instructions ( ) [ start..end] . get ( idx) {
262+ let idx: i32 = stack. values . pop ( ) ?. into ( ) ;
263+ match cf. instructions ( ) [ start..end] . get ( idx as usize ) {
264264 None => break_to ! ( cf, stack, default ) ,
265265 Some ( BrLabel ( to) ) => break_to ! ( cf, stack, to) ,
266266 _ => return Err ( Error :: Other ( "br_table with invalid label" . to_string ( ) ) ) ,
@@ -269,7 +269,7 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
269269
270270 Br ( v) => break_to ! ( cf, stack, v) ,
271271 BrIf ( v) => {
272- if stack. values . pop_t :: < i32 > ( ) ? != 0 {
272+ if i32 :: from ( stack. values . pop ( ) ?) != 0 {
273273 break_to ! ( cf, stack, v) ;
274274 }
275275 }
@@ -329,8 +329,9 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
329329 let mem = store. get_mem ( module. resolve_mem_addr ( * addr) ) ?;
330330 let mut mem = mem. borrow_mut ( ) ;
331331 let prev_size = mem. page_count ( ) as i32 ;
332+ let pages_delta: i32 = stack. values . pop ( ) ?. into ( ) ;
332333
333- match mem. grow ( stack . values . pop_t :: < i32 > ( ) ? ) {
334+ match mem. grow ( pages_delta ) {
334335 Some ( _) => stack. values . push ( prev_size. into ( ) ) ,
335336 None => stack. values . push ( ( -1 ) . into ( ) ) ,
336337 }
@@ -366,9 +367,9 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
366367 }
367368
368369 MemoryInit ( data_index, mem_index) => {
369- let size = stack. values . pop_t :: < i32 > ( ) ? as usize ;
370- let offset = stack. values . pop_t :: < i32 > ( ) ? as usize ;
371- let dst = stack. values . pop_t :: < i32 > ( ) ? as usize ;
370+ let size = i32 :: from ( stack. values . pop ( ) ?) as usize ;
371+ let offset = i32 :: from ( stack. values . pop ( ) ?) as usize ;
372+ let dst = i32 :: from ( stack. values . pop ( ) ?) as usize ;
372373
373374 let data = match & store. get_data ( module. resolve_data_addr ( * data_index) ) ?. data {
374375 Some ( data) => data,
@@ -561,16 +562,16 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
561562 TableGet ( table_index) => {
562563 let table_idx = module. resolve_table_addr ( * table_index) ;
563564 let table = store. get_table ( table_idx) ?;
564- let idx = stack. values . pop_t :: < u32 > ( ) ?;
565+ let idx: u32 = stack. values . pop ( ) ?. into ( ) ;
565566 let v = table. borrow ( ) . get_wasm_val ( idx) ?;
566567 stack. values . push ( v. into ( ) ) ;
567568 }
568569
569570 TableSet ( table_index) => {
570571 let table_idx = module. resolve_table_addr ( * table_index) ;
571572 let table = store. get_table ( table_idx) ?;
572- let val = stack. values . pop_t :: < u32 > ( ) ?;
573- let idx = stack. values . pop_t :: < u32 > ( ) ?;
573+ let val = stack. values . pop ( ) ?. into ( ) ;
574+ let idx = stack. values . pop ( ) ?. into ( ) ;
574575 table. borrow_mut ( ) . set ( idx, val) ?;
575576 }
576577
@@ -632,7 +633,7 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
632633 stack. values . push ( ( local + * val) . into ( ) ) ;
633634 }
634635 I32StoreLocal { local, const_i32 : consti32, offset, mem_addr } => {
635- let ( mem_addr, offset) = ( * mem_addr as u32 , * offset as u32 ) ;
636+ let ( mem_addr, offset) = ( * mem_addr as u32 , * offset) ;
636637 let mem = store. get_mem ( module. resolve_mem_addr ( mem_addr) ) ?;
637638 let val = consti32. to_le_bytes ( ) ;
638639 let addr: u64 = cf. get_local ( * local) . into ( ) ;
0 commit comments