@@ -138,7 +138,7 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
138
138
139
139
CallIndirect ( type_addr, table_addr) => {
140
140
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 ( ) ;
142
142
143
143
// verify that the table is of the right type, this should be validated by the parser already
144
144
let func_ref = {
@@ -188,7 +188,7 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
188
188
189
189
If ( args, else_offset, end_offset) => {
190
190
// 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 {
192
192
cf. enter_block (
193
193
BlockFrame :: new (
194
194
cf. instr_ptr ,
@@ -259,8 +259,8 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
259
259
return Err ( Error :: Other ( format ! ( "br_table out of bounds: {} >= {}" , end, cf. instructions( ) . len( ) ) ) ) ;
260
260
}
261
261
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 ) {
264
264
None => break_to ! ( cf, stack, default ) ,
265
265
Some ( BrLabel ( to) ) => break_to ! ( cf, stack, to) ,
266
266
_ => 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
269
269
270
270
Br ( v) => break_to ! ( cf, stack, v) ,
271
271
BrIf ( v) => {
272
- if stack. values . pop_t :: < i32 > ( ) ? != 0 {
272
+ if i32 :: from ( stack. values . pop ( ) ?) != 0 {
273
273
break_to ! ( cf, stack, v) ;
274
274
}
275
275
}
@@ -329,8 +329,9 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
329
329
let mem = store. get_mem ( module. resolve_mem_addr ( * addr) ) ?;
330
330
let mut mem = mem. borrow_mut ( ) ;
331
331
let prev_size = mem. page_count ( ) as i32 ;
332
+ let pages_delta: i32 = stack. values . pop ( ) ?. into ( ) ;
332
333
333
- match mem. grow ( stack . values . pop_t :: < i32 > ( ) ? ) {
334
+ match mem. grow ( pages_delta ) {
334
335
Some ( _) => stack. values . push ( prev_size. into ( ) ) ,
335
336
None => stack. values . push ( ( -1 ) . into ( ) ) ,
336
337
}
@@ -366,9 +367,9 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
366
367
}
367
368
368
369
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 ;
372
373
373
374
let data = match & store. get_data ( module. resolve_data_addr ( * data_index) ) ?. data {
374
375
Some ( data) => data,
@@ -561,16 +562,16 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
561
562
TableGet ( table_index) => {
562
563
let table_idx = module. resolve_table_addr ( * table_index) ;
563
564
let table = store. get_table ( table_idx) ?;
564
- let idx = stack. values . pop_t :: < u32 > ( ) ?;
565
+ let idx: u32 = stack. values . pop ( ) ?. into ( ) ;
565
566
let v = table. borrow ( ) . get_wasm_val ( idx) ?;
566
567
stack. values . push ( v. into ( ) ) ;
567
568
}
568
569
569
570
TableSet ( table_index) => {
570
571
let table_idx = module. resolve_table_addr ( * table_index) ;
571
572
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 ( ) ;
574
575
table. borrow_mut ( ) . set ( idx, val) ?;
575
576
}
576
577
@@ -632,7 +633,7 @@ fn exec_one(cf: &mut CallFrame, stack: &mut Stack, store: &mut Store, module: &M
632
633
stack. values . push ( ( local + * val) . into ( ) ) ;
633
634
}
634
635
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) ;
636
637
let mem = store. get_mem ( module. resolve_mem_addr ( mem_addr) ) ?;
637
638
let val = consti32. to_le_bytes ( ) ;
638
639
let addr: u64 = cf. get_local ( * local) . into ( ) ;
0 commit comments