aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-02-09 19:04:46 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-02-09 19:04:46 +0100
commit6db2f51d4aa52c4ab83b0c8160e6c8fc6ce00eb0 (patch)
tree14054e9c83e35623524f40b6f2d205f5de4813db /src
parent6f04da895ddc965d869d557640d4149308268dd3 (diff)
downloadsylt-6db2f51d4aa52c4ab83b0c8160e6c8fc6ce00eb0.tar.gz
shorter unsafe
Diffstat (limited to 'src')
-rw-r--r--src/vm.rs23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/vm.rs b/src/vm.rs
index b195a1c..37da8ca 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -120,11 +120,7 @@ impl VM {
fn push(&mut self, value: Value) {
unsafe {
- *unwrap_unchecked_o(
- self.stack
- .offset(unwrap_unchecked_r(self.stack_len.try_into()))
- .as_mut()
- ) = value;
+ *self.stack.offset(self.stack_len as isize) = value;
}
self.stack_len += 1;
}
@@ -134,11 +130,7 @@ impl VM {
// &self.stack[slot]
// unsafe { self.stack.get_unchecked(slot) }
unsafe {
- unwrap_unchecked_o(
- self.stack
- .offset(unwrap_unchecked_r(slot.try_into()))
- .as_ref()
- )
+ &*self.stack.offset(slot as isize)
}
}
@@ -147,11 +139,7 @@ impl VM {
// &mut self.stack[slot]
// unsafe { self.stack.get_unchecked_mut(slot) }
unsafe {
- unwrap_unchecked_o(
- self.stack
- .offset(unwrap_unchecked_r(slot.try_into()))
- .as_mut()
- )
+ &mut *self.stack.offset(slot as isize)
}
}
@@ -161,9 +149,8 @@ impl VM {
// self.stack.pop().unwrap_or_else(|| unsafe { std::hint::unreachable_unchecked() })
self.stack_len -= 1;
unsafe {
- ptr::replace(
- self.stack.offset(unwrap_unchecked_r(self.stack_len.try_into())),
- Value::Nil)
+ ptr::replace(self.stack.offset(self.stack_len as isize),
+ Value::Nil)
}
}