Give context in StackUnderflow
This commit is contained in:
parent
1013ced144
commit
3b97bcea13
Notes:
git
2025-04-18 13:49:15 +00:00
@ -229,11 +229,11 @@ impl FrameState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn top(&self) -> Result<Opnd, ParseError> {
|
fn top(&self) -> Result<Opnd, ParseError> {
|
||||||
self.stack.last().ok_or(ParseError::StackUnderflow).copied()
|
self.stack.last().ok_or_else(|| ParseError::StackUnderflow(self.clone())).copied()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pop(&mut self) -> Result<Opnd, ParseError> {
|
fn pop(&mut self) -> Result<Opnd, ParseError> {
|
||||||
self.stack.pop().ok_or(ParseError::StackUnderflow)
|
self.stack.pop().ok_or_else(|| ParseError::StackUnderflow(self.clone()))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setn(&mut self, n: usize, opnd: Opnd) {
|
fn setn(&mut self, n: usize, opnd: Opnd) {
|
||||||
@ -308,7 +308,7 @@ fn compute_jump_targets(iseq: *const rb_iseq_t) -> Vec<u32> {
|
|||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum ParseError {
|
pub enum ParseError {
|
||||||
StackUnderflow,
|
StackUnderflow(FrameState),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn iseq_to_ssa(iseq: *const rb_iseq_t) -> Result<Function, ParseError> {
|
pub fn iseq_to_ssa(iseq: *const rb_iseq_t) -> Result<Function, ParseError> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user