}
fn range_from(&self, index: RangeFrom<usize>) -> &str {
- &self.contents.as_str()[index]
+ &self.contents.as_str().get(index).unwrap_or("")
}
}
match self.find_living_dynamic_else(p) {
Some((p, next_i)) => {
self.machine_st.p = p;
+ self.machine_st.oip = 0;
+ self.machine_st.iip = 0;
match self.machine_st.dynamic_mode {
FirstOrNext::First if next_i == 0 => {
match self.find_living_dynamic_else(p) {
Some((p, next_i)) => {
self.machine_st.p = p;
+ self.machine_st.oip = 0;
+ self.machine_st.iip = 0;
match self.machine_st.dynamic_mode {
FirstOrNext::First if next_i == 0 => {
pub(super) fn call_at_index(&mut self, arity: usize, p: usize) {
self.cp = self.p + 1;
self.p = p;
+ self.oip = 0;
+ self.iip = 0;
self.num_of_args = arity;
self.b0 = self.b;
}
#[inline(always)]
pub(super) fn execute_at_index(&mut self, arity: usize, p: usize) {
+ self.p = p;
+ self.oip = 0;
+ self.iip = 0;
self.num_of_args = arity;
self.b0 = self.b;
- self.p = p;
}
pub fn read_term(&mut self, stream: Stream, indices: &mut IndexStore) -> CallResult {