]> Repositorios git - scryer-prolog.git/commitdiff
tweak codegen
authorMark Thom <[email protected]>
Sat, 5 Aug 2017 16:15:40 +0000 (10:15 -0600)
committerMark Thom <[email protected]>
Sat, 5 Aug 2017 16:15:40 +0000 (10:15 -0600)
src/prolog/codegen.rs

index acd9407eaee5fd6950a89b19d3fc882350f0d66f..abe274e01f3e0e3b946d29cf15a9b2f380fd000e 100644 (file)
@@ -256,17 +256,19 @@ impl<'a, TermMarker: Allocator<'a>> CodeGenerator<'a, TermMarker>
                            body: &mut Code)
                            -> usize
     {
-        let perm_vars = vs.vars_above_threshold(0) + deep_cuts as usize;
-
         if num_clauses > 0 {
+            let perm_vars = vs.vars_above_threshold(0) + deep_cuts as usize;
+
             body.push(Line::Control(ControlInstruction::Allocate(perm_vars)));
 
             if deep_cuts {
                 body.push(Line::Cut(CutInstruction::GetLevel));
             }
+
+            return perm_vars;
         }
 
-        perm_vars
+        0
     }
 
     fn compile_neck_cut_or(&mut self,