@@ -2324,7 +2324,8 @@ impl ExecutingFrame<'_> { |
2324 | 2324 | }; |
2325 | 2325 | self.push_value(match value { |
2326 | 2326 | Some(v) => v, |
2327 | | - None => self.cell_ref(i) |
| 2327 | + None => self |
| 2328 | + .cell_ref(i) |
2328 | 2329 | .get() |
2329 | 2330 | .ok_or_else(|| self.unbound_cell_exception(i, vm))?, |
2330 | 2331 | }); |
@@ -2393,7 +2394,8 @@ impl ExecutingFrame<'_> { |
2393 | 2394 | } |
2394 | 2395 | Instruction::LoadDeref { i } => { |
2395 | 2396 | let idx = i.get(arg) as usize; |
2396 | | - let x = self.cell_ref(idx) |
| 2397 | + let x = self |
| 2398 | + .cell_ref(idx) |
2397 | 2399 | .get() |
2398 | 2400 | .ok_or_else(|| self.unbound_cell_exception(idx, vm))?; |
2399 | 2401 | self.push_value(x); |
@@ -8686,23 +8688,25 @@ impl fmt::Debug for Frame { |
8686 | 8688 | // SAFETY: Debug is best-effort; concurrent mutation is unlikely |
8687 | 8689 | // and would only affect debug output. |
8688 | 8690 | let iframe = unsafe { &*self.iframe.get() }; |
8689 | | - let stack_str = iframe.localsplus |
8690 | | - .stack_as_slice() |
8691 | | - .iter() |
8692 | | - .fold(String::new(), |mut s, slot| { |
8693 | | - match slot { |
8694 | | - Some(elem) if elem.downcastable::<Self>() => { |
8695 | | - s.push_str("\n > {frame}"); |
8696 | | - } |
8697 | | - Some(elem) => { |
8698 | | - core::fmt::write(&mut s, format_args!("\n > {elem:?}")).unwrap(); |
8699 | | - } |
8700 | | - None => { |
8701 | | - s.push_str("\n > NULL"); |
| 8691 | + let stack_str = |
| 8692 | + iframe |
| 8693 | + .localsplus |
| 8694 | + .stack_as_slice() |
| 8695 | + .iter() |
| 8696 | + .fold(String::new(), |mut s, slot| { |
| 8697 | + match slot { |
| 8698 | + Some(elem) if elem.downcastable::<Self>() => { |
| 8699 | + s.push_str("\n > {frame}"); |
| 8700 | + } |
| 8701 | + Some(elem) => { |
| 8702 | + core::fmt::write(&mut s, format_args!("\n > {elem:?}")).unwrap(); |
| 8703 | + } |
| 8704 | + None => { |
| 8705 | + s.push_str("\n > NULL"); |
| 8706 | + } |
8702 | 8707 | } |
8703 | | - } |
8704 | | - s |
8705 | | - }); |
| 8708 | + s |
| 8709 | + }); |
8706 | 8710 | // TODO: fix this up |
8707 | 8711 | write!( |
8708 | 8712 | f, |
|