diff options
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index c79027597f8..e0e7b22ea13 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -572,9 +572,9 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 572 | if (nargs < mandatory) | 572 | if (nargs < mandatory) |
| 573 | /* Too few arguments. */ | 573 | /* Too few arguments. */ |
| 574 | Fsignal (Qwrong_number_of_arguments, | 574 | Fsignal (Qwrong_number_of_arguments, |
| 575 | Fcons (Fcons (make_number (mandatory), | 575 | list2 (Fcons (make_number (mandatory), |
| 576 | rest ? Qand_rest : make_number (nonrest)), | 576 | rest ? Qand_rest : make_number (nonrest)), |
| 577 | Fcons (make_number (nargs), Qnil))); | 577 | make_number (nargs))); |
| 578 | else | 578 | else |
| 579 | { | 579 | { |
| 580 | for (; i < nonrest; i++) | 580 | for (; i < nonrest; i++) |
| @@ -593,9 +593,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 593 | else | 593 | else |
| 594 | /* Too many arguments. */ | 594 | /* Too many arguments. */ |
| 595 | Fsignal (Qwrong_number_of_arguments, | 595 | Fsignal (Qwrong_number_of_arguments, |
| 596 | Fcons (Fcons (make_number (mandatory), | 596 | list2 (Fcons (make_number (mandatory), make_number (nonrest)), |
| 597 | make_number (nonrest)), | 597 | make_number (nargs))); |
| 598 | Fcons (make_number (nargs), Qnil))); | ||
| 599 | } | 598 | } |
| 600 | else if (! NILP (args_template)) | 599 | else if (! NILP (args_template)) |
| 601 | /* We should push some arguments on the stack. */ | 600 | /* We should push some arguments on the stack. */ |
| @@ -1064,8 +1063,8 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1064 | 1063 | ||
| 1065 | CASE (Bsave_window_excursion): /* Obsolete since 24.1. */ | 1064 | CASE (Bsave_window_excursion): /* Obsolete since 24.1. */ |
| 1066 | { | 1065 | { |
| 1067 | register ptrdiff_t count1 = SPECPDL_INDEX (); | 1066 | ptrdiff_t count1 = SPECPDL_INDEX (); |
| 1068 | record_unwind_protect (Fset_window_configuration, | 1067 | record_unwind_protect (restore_window_configuration, |
| 1069 | Fcurrent_window_configuration (Qnil)); | 1068 | Fcurrent_window_configuration (Qnil)); |
| 1070 | BEFORE_POTENTIAL_GC (); | 1069 | BEFORE_POTENTIAL_GC (); |
| 1071 | TOP = Fprogn (TOP); | 1070 | TOP = Fprogn (TOP); |
| @@ -1090,7 +1089,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1090 | } | 1089 | } |
| 1091 | 1090 | ||
| 1092 | CASE (Bunwind_protect): /* FIXME: avoid closure for lexbind. */ | 1091 | CASE (Bunwind_protect): /* FIXME: avoid closure for lexbind. */ |
| 1093 | record_unwind_protect (Fprogn, POP); | 1092 | record_unwind_protect (unwind_body, POP); |
| 1094 | NEXT; | 1093 | NEXT; |
| 1095 | 1094 | ||
| 1096 | CASE (Bcondition_case): /* FIXME: ill-suited for lexbind. */ | 1095 | CASE (Bcondition_case): /* FIXME: ill-suited for lexbind. */ |
| @@ -1172,14 +1171,14 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1172 | } | 1171 | } |
| 1173 | 1172 | ||
| 1174 | CASE (Blist1): | 1173 | CASE (Blist1): |
| 1175 | TOP = Fcons (TOP, Qnil); | 1174 | TOP = list1 (TOP); |
| 1176 | NEXT; | 1175 | NEXT; |
| 1177 | 1176 | ||
| 1178 | CASE (Blist2): | 1177 | CASE (Blist2): |
| 1179 | { | 1178 | { |
| 1180 | Lisp_Object v1; | 1179 | Lisp_Object v1; |
| 1181 | v1 = POP; | 1180 | v1 = POP; |
| 1182 | TOP = Fcons (TOP, Fcons (v1, Qnil)); | 1181 | TOP = list2 (TOP, v1); |
| 1183 | NEXT; | 1182 | NEXT; |
| 1184 | } | 1183 | } |
| 1185 | 1184 | ||