[pypy-svn] r44081 - pypy/branch/prolog-bytecode/pypy/lang/prolog/builtin

cfbolz at codespeak.net cfbolz at codespeak.net
Thu Jun 7 12:42:01 CEST 2007


Author: cfbolz
Date: Thu Jun  7 12:42:01 2007
New Revision: 44081

Modified:
   pypy/branch/prolog-bytecode/pypy/lang/prolog/builtin/database.py
Log:
fix retract


Modified: pypy/branch/prolog-bytecode/pypy/lang/prolog/builtin/database.py
==============================================================================
--- pypy/branch/prolog-bytecode/pypy/lang/prolog/builtin/database.py	(original)
+++ pypy/branch/prolog-bytecode/pypy/lang/prolog/builtin/database.py	Thu Jun  7 12:42:01 2007
@@ -47,11 +47,13 @@
     while rulechain:
         rule = rulechain.rule
         oldstate = engine.heap.branch()
-        # standardizing apart
         try:
-            deleted_body = rule.clone_and_unify_head(engine.heap, head)
+            memo = {}
+            rulehead = rule.head.copy(engine.heap, memo)
+            rulehead.unify(head, engine.heap)
             if body is not None:
-                body.unify(deleted_body, engine.heap)
+                rulebody = rule.body.copy(engine.heap, memo)
+                rulebody.unify(body, engine.heap)
         except error.UnificationFailed:
             engine.heap.revert(oldstate)
         else:



More information about the Pypy-commit mailing list