From b94f9f2ab709295c08bd0df377d79396c78e01d2 Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Mon, 25 Jun 2018 17:37:04 +0300 Subject: [PATCH] Review fixes. --- src/runner.rs | 20 ++++++++------------ src/validation/func.rs | 2 +- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/runner.rs b/src/runner.rs index 107ee67..936b5fc 100644 --- a/src/runner.rs +++ b/src/runner.rs @@ -392,15 +392,15 @@ impl<'a, E: Externals> Interpreter<'a, E> { } fn run_br_table(&mut self, table: &[isa::Target]) -> Result { - let index: u32 = self.value_stack - .pop_as(); + let index: u32 = self.value_stack.pop_as(); - let dst = - if (index as usize) < table.len() - 1 { + let dst = if (index as usize) < table.len() - 1 { table[index as usize].clone() } else { - let len = table.len(); - table[len - 1].clone() + table + .last() + .expect("Due to validation there should be at least one label") + .clone() }; Ok(InstructionOutcome::Branch(dst)) } @@ -426,9 +426,7 @@ impl<'a, E: Externals> Interpreter<'a, E> { context: &mut FunctionContext, signature_idx: u32, ) -> Result { - let table_func_idx: u32 = self - .value_stack - .pop_as(); + let table_func_idx: u32 = self.value_stack.pop_as(); let table = context .module() .table_by_index(DEFAULT_TABLE_INDEX) @@ -453,9 +451,7 @@ impl<'a, E: Externals> Interpreter<'a, E> { } fn run_drop(&mut self) -> Result { - let _ = self - .value_stack - .pop(); + let _ = self.value_stack.pop(); Ok(InstructionOutcome::RunNextInstruction) } diff --git a/src/validation/func.rs b/src/validation/func.rs index e8e76b0..cc0cdde 100644 --- a/src/validation/func.rs +++ b/src/validation/func.rs @@ -434,7 +434,7 @@ impl FunctionReader { let drop_keep = drop_keep_return( &context.locals, &context.value_stack, - &context.frame_stack + &context.frame_stack, ); context.sink.emit(isa::Instruction::Return(drop_keep));