From: Mark Thom Date: Fri, 15 Nov 2024 05:04:09 +0000 (-0700) Subject: dereference clause_clause value, reserve more parser space (#2579) X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=7ce793d0b863266ff260f927a7ca6b7608919714;p=scryer-prolog.git dereference clause_clause value, reserve more parser space (#2579) --- diff --git a/src/machine/loader.rs b/src/machine/loader.rs index 18a4c973..34499ced 100644 --- a/src/machine/loader.rs +++ b/src/machine/loader.rs @@ -2462,7 +2462,7 @@ impl<'a> Loader<'a, LiveLoadAndMachineState<'a>> { } let machine_st = LiveLoadAndMachineState::machine_st(&mut self.payload); - let value = machine_st.store(MachineState::deref(&machine_st, machine_st[term_reg])); + let value = machine_st.store(MachineState::deref(machine_st, machine_st[term_reg])); self.add_clause_clause_if_dynamic(value)?; diff --git a/src/parser/parser.rs b/src/parser/parser.rs index b67b1a4d..c726ced2 100644 --- a/src/parser/parser.rs +++ b/src/parser/parser.rs @@ -1282,9 +1282,9 @@ impl<'a, R: CharRead> LexerParser<'a, R> { }; // the parser uses conditional indirection in many places so - // the reserved size should be at least 3 * term_byte_size + // the reserved size should be at least 4 * term_byte_size // so all cells are accounted for. - let writer = match self.machine_st.heap.reserve(cell_index!(3 * term_byte_size)) { + let writer = match self.machine_st.heap.reserve(cell_index!(4 * term_byte_size)) { Ok(term) => term, Err(_err_loc) => { return Err(ParserError::ResourceError(self.loc_to_err_src()));