aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-01-21 09:30:14 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-01-21 19:12:24 +0100
commit09900003659ee8f1bd078d42bb3bd32c8ee10057 (patch)
treecdddccd26c9a0b7f792a13496241347749e06616 /src
parent4a035f7aaa3220295afb8cd483fee5deb8f4edc3 (diff)
downloadsylt-09900003659ee8f1bd078d42bb3bd32c8ee10057.tar.gz
pop_twice move instead of clone
Diffstat (limited to 'src')
-rw-r--r--src/vm.rs10
1 files changed, 7 insertions, 3 deletions
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> {