diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-01-21 09:30:14 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-01-21 19:12:24 +0100 |
| commit | 09900003659ee8f1bd078d42bb3bd32c8ee10057 (patch) | |
| tree | cdddccd26c9a0b7f792a13496241347749e06616 /src | |
| parent | 4a035f7aaa3220295afb8cd483fee5deb8f4edc3 (diff) | |
| download | sylt-09900003659ee8f1bd078d42bb3bd32c8ee10057.tar.gz | |
pop_twice move instead of clone
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.rs | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -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> { |
