Mercurial > hg > xemacs-beta
comparison src/eval.c @ 241:f955c73f5258 r20-5b19
Import from CVS: tag r20-5b19
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:16:16 +0200 |
parents | 2c611d1463a6 |
children | f220cc83d72e |
comparison
equal
deleted
inserted
replaced
240:835e739f3c17 | 241:f955c73f5258 |
---|---|
48 #define PUSH_BACKTRACE(bt) \ | 48 #define PUSH_BACKTRACE(bt) \ |
49 do { (bt).next = backtrace_list; backtrace_list = &(bt); } while (0) | 49 do { (bt).next = backtrace_list; backtrace_list = &(bt); } while (0) |
50 | 50 |
51 #define POP_BACKTRACE(bt) \ | 51 #define POP_BACKTRACE(bt) \ |
52 do { backtrace_list = (bt).next; } while (0) | 52 do { backtrace_list = (bt).next; } while (0) |
53 | |
54 extern int profiling_active; | |
55 void profile_increase_call_count (Lisp_Object); | |
53 | 56 |
54 /* This is the list of current catches (and also condition-cases). | 57 /* This is the list of current catches (and also condition-cases). |
55 This is a stack: the most recent catch is at the head of the | 58 This is a stack: the most recent catch is at the head of the |
56 list. Catches are created by declaring a 'struct catchtag' | 59 list. Catches are created by declaring a 'struct catchtag' |
57 locally, filling the .TAG field in with the tag, and doing | 60 locally, filling the .TAG field in with the tag, and doing |
3197 if (emacs_btl_elisp_only_p) | 3200 if (emacs_btl_elisp_only_p) |
3198 backtrace.id_number = btl_symbol_id_number (fun); | 3201 backtrace.id_number = btl_symbol_id_number (fun); |
3199 } | 3202 } |
3200 #endif | 3203 #endif |
3201 | 3204 |
3205 /* It might be useful to place this *after* all the checks. */ | |
3206 if (profiling_active) | |
3207 profile_increase_call_count (fun); | |
3208 | |
3202 if (SYMBOLP (fun)) | 3209 if (SYMBOLP (fun)) |
3203 fun = indirect_function (fun, 1); | 3210 fun = indirect_function (fun, 1); |
3204 | 3211 |
3205 if (SUBRP (fun)) | 3212 if (SUBRP (fun)) |
3206 { | 3213 { |
5045 else | 5052 else |
5046 { | 5053 { |
5047 int i; | 5054 int i; |
5048 for (i = 0; i < backlist->nargs; i++) | 5055 for (i = 0; i < backlist->nargs; i++) |
5049 { | 5056 { |
5057 if (!i && EQ(tem, Qbyte_code)) { | |
5058 write_c_string("\"...\"", stream); | |
5059 continue; | |
5060 } | |
5050 if (i != 0) write_c_string (" ", stream); | 5061 if (i != 0) write_c_string (" ", stream); |
5051 Fprin1 (backlist->args[i], stream); | 5062 Fprin1 (backlist->args[i], stream); |
5052 } | 5063 } |
5053 } | 5064 } |
5054 } | 5065 } |