From a0c375a7ac15b7c5858f76d6a4df664eb07359e8 Mon Sep 17 00:00:00 2001 From: "Tom Breton (Tehom)" Date: Tue, 24 May 2011 17:27:48 -0400 Subject: [PATCH] Added error-provoker argument to destructure_resume --- klink.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/klink.c b/klink.c index 253fb9b..b55b1f2 100644 --- a/klink.c +++ b/klink.c @@ -694,7 +694,7 @@ static void backchar (port * pt, int c); /*_ , Typechecks */ FORWARD_DECL_APPLICATIVE (extern,ps0a1, mk_typecheck); FORWARD_DECL_APPLICATIVE (extern,ps0a1, mk_destructurer); -FORWARD_DECL_CFUNC (extern, ps0a4, destructure_resume); +FORWARD_DECL_CFUNC (extern, ps0a5, destructure_resume); FORWARD_DECL_PRED (extern, is_any); FORWARD_DECL_T_PRED (extern, is_environment); FORWARD_DECL_PRED (extern, is_integer); @@ -2748,10 +2748,11 @@ destructure_make_ops /* ^V= result-so-far */ REF_OPER (destructure_resume), /* V= (result-so-far argobject spec optional?) */ - mk_load (LIST4 (mk_load_ix (1, 0), + mk_load (LIST5 (mk_load_ix (1, 0), mk_load_ix (0, 0), typespec, - kernel_bool (saw_optional))), + kernel_bool (saw_optional), + K_NIL)), mk_store (K_ANY, 1), /* V= forced-argobject */ REF_OPER (force), @@ -2930,10 +2931,11 @@ destructure REF_OPER (destructure_resume), /* ^V= (result-so-far argobject spec optional?) */ - mk_load (LIST4 (mk_load_ix (0, 0), + mk_load (LIST5 (mk_load_ix (0, 0), argobject, new_typespec, - kernel_bool (saw_optional))), + kernel_bool (saw_optional), + K_NIL)), mk_store (K_ANY, 1), /* ^V= result-so-far */ raw_oplist); @@ -3066,10 +3068,11 @@ SIG_CHKARRAY (destructure_resume) = K_ANY, K_TY_DESTRSPEC, REF_OPER (is_bool), + K_ANY, }; -DEF_SIMPLE_CFUNC (ps0a4, destructure_resume, 0) +DEF_SIMPLE_CFUNC (ps0a5, destructure_resume, 0) { - WITH_4_ARGS (destr_result, argobject, typespec, opt_p); + WITH_5_ARGS (destr_result, argobject, typespec, opt_p, err_val); const int max_args = 5; pko arg_array [max_args]; pko * outarray = arg_array; -- 2.11.4.GIT