diff options
author | Vincent Ambo <mail@tazj.in> | 2022-09-03T13·22+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-09-09T10·48+0000 |
commit | 8fdb67847cc1f68ca88dfe7a282f30e9f6ab2cc9 (patch) | |
tree | 5bc4984fbd2da3b2f2965587289bb6729b8a5d04 /tvix/eval/src/vm.rs | |
parent | abdfa7459eb60f2b92064bdff12e33d04491e1cd (diff) |
chore(tvix/eval): debug_assert that all jumps are patched r/4771
Suggestion from sterni in cl/6282 Change-Id: I1adbdda9ff74f55a2f72892ffa524808b305f403 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6445 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
Diffstat (limited to 'tvix/eval/src/vm.rs')
-rw-r--r-- | tvix/eval/src/vm.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tvix/eval/src/vm.rs b/tvix/eval/src/vm.rs index 2c490200e1d1..d42a2e303312 100644 --- a/tvix/eval/src/vm.rs +++ b/tvix/eval/src/vm.rs @@ -342,22 +342,26 @@ impl VM { OpCode::OpInterpolate(Count(count)) => self.run_interpolate(count)?, OpCode::OpJump(JumpOffset(offset)) => { + debug_assert!(offset != 0); self.frame_mut().ip += offset; } OpCode::OpJumpIfTrue(JumpOffset(offset)) => { + debug_assert!(offset != 0); if fallible!(self, self.peek(0).as_bool()) { self.frame_mut().ip += offset; } } OpCode::OpJumpIfFalse(JumpOffset(offset)) => { + debug_assert!(offset != 0); if !fallible!(self, self.peek(0).as_bool()) { self.frame_mut().ip += offset; } } OpCode::OpJumpIfNotFound(JumpOffset(offset)) => { + debug_assert!(offset != 0); if matches!(self.peek(0), Value::AttrNotFound) { self.pop(); self.frame_mut().ip += offset; |