comparison src/eval.c @ 5438:8d29f1c4bb98

Merge with 21.5 trunk.
author Mats Lidell <matsl@xemacs.org>
date Fri, 26 Nov 2010 06:43:36 +0100
parents 308d34e9f07d c096d8051f89
children 0af042a0c116
comparison
equal deleted inserted replaced
5437:002cb5224e4f 5438:8d29f1c4bb98
4919 Fsignal (Qwrong_number_of_arguments, 4919 Fsignal (Qwrong_number_of_arguments,
4920 list2 (Qmultiple_value_list_internal, make_int (nargs))); 4920 list2 (Qmultiple_value_list_internal, make_int (nargs)));
4921 } 4921 }
4922 4922
4923 argv[0] = IGNORE_MULTIPLE_VALUES (Feval (XCAR (args))); 4923 argv[0] = IGNORE_MULTIPLE_VALUES (Feval (XCAR (args)));
4924 CHECK_NATNUM (argv[0]);
4925 first = XINT (argv[0]);
4926 4924
4927 GCPRO1 (argv[0]); 4925 GCPRO1 (argv[0]);
4928 gcpro1.nvars = 1; 4926 gcpro1.nvars = 1;
4929 4927
4930 args = XCDR (args); 4928 args = XCDR (args);
4931
4932 argv[1] = IGNORE_MULTIPLE_VALUES (Feval (XCAR (args))); 4929 argv[1] = IGNORE_MULTIPLE_VALUES (Feval (XCAR (args)));
4933 CHECK_NATNUM (argv[1]); 4930
4931 check_integer_range (argv[1], Qzero, make_int (EMACS_INT_MAX));
4932 check_integer_range (argv[0], Qzero, argv[1]);
4933
4934 upper = XINT (argv[1]); 4934 upper = XINT (argv[1]);
4935 first = XINT (argv[0]);
4936
4935 gcpro1.nvars = 2; 4937 gcpro1.nvars = 2;
4936 4938
4937 /* The unintuitive order of things here is for the sake of the bytecode; 4939 /* The unintuitive order of things here is for the sake of the bytecode;
4938 the alternative would be to encode the number of arguments in the 4940 the alternative would be to encode the number of arguments in the
4939 bytecode stream, which complicates things if we have more than 255 4941 bytecode stream, which complicates things if we have more than 255
7201 { 7203 {
7202 REGISTER struct backtrace *backlist = backtrace_list; 7204 REGISTER struct backtrace *backlist = backtrace_list;
7203 REGISTER int i; 7205 REGISTER int i;
7204 Lisp_Object tem; 7206 Lisp_Object tem;
7205 7207
7206 CHECK_NATNUM (nframes); 7208 check_integer_range (nframes, Qzero, make_integer (EMACS_INT_MAX));
7207 7209
7208 /* Find the frame requested. */ 7210 /* Find the frame requested. */
7209 for (i = XINT (nframes); backlist && (i-- > 0);) 7211 for (i = XINT (nframes); backlist && (i-- > 0);)
7210 backlist = backlist->next; 7212 backlist = backlist->next;
7211 7213