From 09900003659ee8f1bd078d42bb3bd32c8ee10057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Thu, 21 Jan 2021 09:30:14 +0100 Subject: pop_twice move instead of clone --- src/vm.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/vm.rs') diff --git a/src/vm.rs b/src/vm.rs index 3041628..ebb110c 100644 --- a/src/vm.rs +++ b/src/vm.rs @@ -259,9 +259,13 @@ impl VM { fn pop_twice(&mut self) -> (Value, Value) { let len = self.stack.len(); - let res = (self.stack[len-2].clone(), self.stack[len-1].clone()); - self.stack.truncate(len - 2); - res + // stack : { ... valueA valueB valueC } + // ^^^^^^ + // remove len-2 + // stack : { ... valueA valueC } + // ^^^^^^ + // remove len-2 again + (self.stack.remove(len-2), self.stack.remove(len-2)) } fn _peek_up(&self, amount: usize) -> Option<&Value> { -- cgit v1.2.1