node_trans: revert to original transaction code (pre 1.54);
authorwenzelm
Mon, 23 May 2005 14:56:36 +0200
changeset 16046 7d68cd1b1b8b
parent 16045 6e2c020eed45
child 16047 b2bf9a5cde37
node_trans: revert to original transaction code (pre 1.54);
src/Pure/Isar/toplevel.ML
--- a/src/Pure/Isar/toplevel.ML	Mon May 23 14:56:35 2005 +0200
+++ b/src/Pure/Isar/toplevel.ML	Mon May 23 14:56:36 2005 +0200
@@ -215,14 +215,15 @@
       let
         fun mk_state nd = State (SOME (nd, term));
 
-        val f' = checkpoint_node int o f int o copy_node int;
+        val cont_node = History.map (checkpoint_node int) node;
+        val back_node = History.map (copy_node int) cont_node;
 
-        val trans = if hist then History.apply else History.map;
+        val trans = if hist then History.apply_copy (copy_node int) else History.map;
         val (result, opt_exn) =
-          (mk_state (transform_error (interruptible (trans f')) node), NONE)
-            handle exn => (mk_state node, SOME exn);
+          (mk_state (transform_error (interruptible (trans (f int))) cont_node), NONE)
+            handle exn => (mk_state cont_node, SOME exn);
       in
-        if is_stale result then return (mk_state node, SOME (if_none opt_exn rollback))
+        if is_stale result then return (mk_state back_node, SOME (if_none opt_exn rollback))
         else return (result, opt_exn)
       end;