Fix think-o in previous commit -- wetware pattern matcher failed in
authorTaylor R. Campbell <net/mumble/campbell>
Mon, 11 Feb 2008 23:59:24 +0000 (23:59 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Mon, 11 Feb 2008 23:59:24 +0000 (23:59 +0000)
`apply_compiled_from_primitive', which obviously can't use the new
`setup_compiled_invocation_from_primitive' because the latter does a
primitive abort if an error happens, whereas APPLY just wants to
return.

v7/src/microcode/cmpint.c

index bcf75d2070fb2bbb739132e170bbd0a63e2bf433..7fe76453a08fadc307739cbae59833b985876d29 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: cmpint.c,v 1.112 2008/02/11 21:07:21 riastradh Exp $
+$Id: cmpint.c,v 1.113 2008/02/11 23:59:24 riastradh Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -1435,8 +1435,11 @@ apply_compiled_from_primitive (unsigned long n_args,
 
   if (CC_ENTRY_P (procedure))
     {
-      setup_compiled_invocation_from_primitive (procedure, n_args);
-      STACK_PUSH (procedure);
+      long code = (setup_compiled_invocation (procedure, n_args));
+      if (code == PRIM_DONE)
+        STACK_PUSH (procedure);
+      else if (code != PRIM_APPLY_INTERRUPT)
+        PUSH_REFLECTION (REFLECT_CODE_INTERNAL_APPLY);
     }
   else
     {