]> Repositorios git - scryer-prolog.git/commitdiff
correct allocation bugs.
authorMark Thom <[email protected]>
Sun, 11 Feb 2018 19:03:13 +0000 (12:03 -0700)
committerMark Thom <[email protected]>
Sun, 11 Feb 2018 19:03:13 +0000 (12:03 -0700)
src/prolog/codegen.rs
src/prolog/io.rs

index 6e16dcc940499615ed4ab36279fb23afcd721f5f..91b54dad9ee00e7f2bffef6c4aa146719435095b 100644 (file)
@@ -574,7 +574,7 @@ impl<'a, TermMarker: Allocator<'a>> CodeGenerator<'a, TermMarker>
         let mut code = Vec::new();
 
         if let &QueryTerm::Term(ref term) = p0 {
-            self.marker.reset_arg(term.arity());
+            self.marker.reset_arg_at_head(term);
             self.compile_seq_prelude(&conjunct_info, &mut code);
 
             if let &Term::Clause(..) = term {
@@ -586,7 +586,7 @@ impl<'a, TermMarker: Allocator<'a>> CodeGenerator<'a, TermMarker>
                 }
             }
 
-            self.marker.reset_arg_at_head(term);
+            // self.marker.reset_arg_at_head(term);
 
             let iter = ChunkedIterator::from_rule_body(p1, clauses);
             try!(self.compile_seq(iter, &conjunct_info, &mut code, false));
index 55d0d9eed8f7f98535fb2147a51c8bf662ccf554..0affc7224a6a9312021a5745ea3cb3ecf6f08326 100644 (file)
@@ -517,7 +517,7 @@ fn compile_decl<'a, 'b: 'a>(wam: &'a mut Machine, tl: &'b TopLevel, queue: &'b V
             if let Err(e) = compile_appendix(&mut code, queue) {
                 return EvalSession::from(e);
             };
-
+            
             if !code.is_empty() {
                 if let Some(name) = tl.name() {
                     wam.add_user_code(name, tl.arity(), code)