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 }