From 10f2aff0444b33b0232aad32c660330c2117da87 Mon Sep 17 00:00:00 2001 From: Camm Maguire Date: Sun, 13 Nov 2022 12:55:14 +0000 Subject: [PATCH] TODO: Put a short summary on the line above and replace this paragraph with a longer explanation of this change. Complete the meta-information with other relevant fields (see below for details). To make it easier, the information below has been extracted from the changelog. Adjust it or drop it. gcl (2.6.12-49) unstable; urgency=medium * list_order.5 Gbp-Pq: Name list_order.6 --- o/eval.c | 33 +++++++++++++++++---------------- o/read.d | 1 + o/sgbc.c | 2 +- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/o/eval.c b/o/eval.c index fe26e66..c7b8e0b 100755 --- a/o/eval.c +++ b/o/eval.c @@ -96,18 +96,18 @@ quick_call_sfun(object fun) { } -/* only for sfun not gfun !! Does not check number of args */ -static void -call_sfun_no_check(object fun) -{ DEBUG_AVMA - int n; - object *base=vs_base; - n=vs_top - base; - base[0]=c_apply_n_fun(fun,n,base); - vs_top=(vs_base=base)+1; - CHECK_AVMA; - return; -} +/* /\* only for sfun not gfun !! Does not check number of args *\/ */ +/* static void */ +/* call_sfun_no_check(object fun) */ +/* { DEBUG_AVMA */ +/* int n; */ +/* object *base=vs_base; */ +/* n=vs_top - base; */ +/* base[0]=c_apply_n_fun(fun,n,base); */ +/* vs_top=(vs_base=base)+1; */ +/* CHECK_AVMA; */ +/* return; */ +/* } */ static void call_vfun(object fun) { DEBUG_AVMA @@ -615,10 +615,11 @@ super_funcall_no_event(object fun) { switch(type_of(fun)) { case t_cfun: - (*fun->cf.cf_self)(); - return; + (*fun->cf.cf_self)(); return; + case t_cclosure: + (*fun->cc.cc_self)(fun); return; case t_sfun: - call_sfun_no_check(fun); return; + /* call_sfun_no_check(fun); return; */ case t_gfun: quick_call_sfun(fun); return; case t_vfun: @@ -631,7 +632,7 @@ super_funcall_no_event(object fun) { super_funcall_no_event(fun->s.s_gfdef); return; default: - funcall_no_event(fun); + funcall(fun); } } diff --git a/o/read.d b/o/read.d index c5522ab..ba678cf 100755 --- a/o/read.d +++ b/o/read.d @@ -1176,6 +1176,7 @@ Lsharp_left_parenthesis_reader() goto L; } vs_base[0]=list(4,siScomma,sLapply,list(2,sLquote,sLvector),vs_base[2]); + vs_top=vs_base+1; return; } vsp = vs_top; diff --git a/o/sgbc.c b/o/sgbc.c index c1ea016..307f4f9 100755 --- a/o/sgbc.c +++ b/o/sgbc.c @@ -369,7 +369,7 @@ memprotect_handler_test(int sig, long code, void *scp, char *addr) { do_gcl_abort(); } memprotect_handler_invocations=1; - if (faddr!=memprotect_test_address) + if (page(faddr)!=page(memprotect_test_address)) memprotect_result=memprotect_bad_fault_address; else memprotect_result=memprotect_none; -- 2.30.2