From 15133bd4f180ea65ebb774ff771eefc3fdc7fd3e Mon Sep 17 00:00:00 2001 From: Andrew Morris Date: Wed, 4 May 2022 10:52:04 +1000 Subject: [PATCH] Prefer moving Vals instead of passing by reference --- src/vstc/virtual_machine/operations.rs | 12 ++++++------ src/vstc/virtual_machine/virtual_machine.rs | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/vstc/virtual_machine/operations.rs b/src/vstc/virtual_machine/operations.rs index f552a5b..c737dfb 100644 --- a/src/vstc/virtual_machine/operations.rs +++ b/src/vstc/virtual_machine/operations.rs @@ -4,7 +4,7 @@ use super::vs_value::Val; use super::vs_value::ValTrait; use super::vs_value::VsType; -pub fn op_plus(left: &Val, right: &Val) -> Val { +pub fn op_plus(left: Val, right: Val) -> Val { let left_prim = left.to_primitive(); let right_prim = right.to_primitive(); @@ -15,19 +15,19 @@ pub fn op_plus(left: &Val, right: &Val) -> Val { return Val::Number(left_prim.to_number() + right_prim.to_number()); } -pub fn op_minus(left: &Val, right: &Val) -> Val { +pub fn op_minus(left: Val, right: Val) -> Val { return Val::Number(left.to_number() - right.to_number()); } -pub fn op_mul(left: &Val, right: &Val) -> Val { +pub fn op_mul(left: Val, right: Val) -> Val { return Val::Number(left.to_number() * right.to_number()); } -pub fn op_mod(left: &Val, right: &Val) -> Val { +pub fn op_mod(left: Val, right: Val) -> Val { return Val::Number(left.to_number() % right.to_number()); } -pub fn op_less(left: &Val, right: &Val) -> Val { +pub fn op_less(left: Val, right: Val) -> Val { if left.typeof_() != VsType::Number || right.typeof_() != VsType::Number { std::panic!("Not implemented"); } @@ -35,7 +35,7 @@ pub fn op_less(left: &Val, right: &Val) -> Val { return Val::Bool(left.to_number() < right.to_number()); } -pub fn op_triple_ne(left: &Val, right: &Val) -> Val { +pub fn op_triple_ne(left: Val, right: Val) -> Val { if left.typeof_() != VsType::Number || right.typeof_() != VsType::Number { std::panic!("Not implemented"); } diff --git a/src/vstc/virtual_machine/virtual_machine.rs b/src/vstc/virtual_machine/virtual_machine.rs index 2089b50..e23b391 100644 --- a/src/vstc/virtual_machine/virtual_machine.rs +++ b/src/vstc/virtual_machine/virtual_machine.rs @@ -91,14 +91,14 @@ impl VirtualMachine { OpInc => { let register_index = frame.decoder.decode_register_index().unwrap(); let mut val = frame.registers[register_index].clone(); - val = operations::op_plus(&val, &Val::Number(1_f64)); + val = operations::op_plus(val, Val::Number(1_f64)); frame.registers[register_index] = val; }, OpDec => { let register_index = frame.decoder.decode_register_index().unwrap(); let mut val = frame.registers[register_index].clone(); - val = operations::op_minus(&val, &Val::Number(1_f64)); + val = operations::op_minus(val, Val::Number(1_f64)); frame.registers[register_index] = val; }, @@ -109,7 +109,7 @@ impl VirtualMachine { let register_index = frame.decoder.decode_register_index(); if register_index.is_some() { - frame.registers[register_index.unwrap()] = operations::op_plus(&left, &right); + frame.registers[register_index.unwrap()] = operations::op_plus(left, right); } }, @@ -120,7 +120,7 @@ impl VirtualMachine { let register_index = frame.decoder.decode_register_index(); if register_index.is_some() { - frame.registers[register_index.unwrap()] = operations::op_minus(&left, &right); + frame.registers[register_index.unwrap()] = operations::op_minus(left, right); } }, @@ -131,7 +131,7 @@ impl VirtualMachine { let register_index = frame.decoder.decode_register_index(); if register_index.is_some() { - frame.registers[register_index.unwrap()] = operations::op_mul(&left, &right); + frame.registers[register_index.unwrap()] = operations::op_mul(left, right); } }, @@ -144,7 +144,7 @@ impl VirtualMachine { let register_index = frame.decoder.decode_register_index(); if register_index.is_some() { - frame.registers[register_index.unwrap()] = operations::op_mod(&left, &right); + frame.registers[register_index.unwrap()] = operations::op_mod(left, right); } }, @@ -163,7 +163,7 @@ impl VirtualMachine { let register_index = frame.decoder.decode_register_index(); if register_index.is_some() { - frame.registers[register_index.unwrap()] = operations::op_triple_ne(&left, &right); + frame.registers[register_index.unwrap()] = operations::op_triple_ne(left, right); } } @@ -180,7 +180,7 @@ impl VirtualMachine { let register_index = frame.decoder.decode_register_index(); if register_index.is_some() { - frame.registers[register_index.unwrap()] = operations::op_less(&left, &right); + frame.registers[register_index.unwrap()] = operations::op_less(left, right); } }