Description: <short summary of the 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
Author: Camm Maguire <camm@debian.org>
---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:
Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2017-06-13
--- gcl-2.6.12.orig/o/eval.c
+++ gcl-2.6.12/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);
}
}
--- gcl-2.6.12.orig/o/read.d
+++ gcl-2.6.12/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;
--- gcl-2.6.12.orig/o/sgbc.c
+++ gcl-2.6.12/o/sgbc.c
@@ -369,7 +369,7 @@ memprotect_handler_test(int sig, long co
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;