From: Taylor R. Campbell Date: Mon, 11 Feb 2008 23:59:24 +0000 (+0000) Subject: Fix think-o in previous commit -- wetware pattern matcher failed in X-Git-Tag: 20090517-FFI~331 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=a2fe136fe742b00ee505864674fde78f4496df58;p=mit-scheme.git Fix think-o in previous commit -- wetware pattern matcher failed in `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. --- diff --git a/v7/src/microcode/cmpint.c b/v7/src/microcode/cmpint.c index bcf75d207..7fe76453a 100644 --- a/v7/src/microcode/cmpint.c +++ b/v7/src/microcode/cmpint.c @@ -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 {