aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/eval.c b/src/eval.c
index cefdf784faf..dddedc77286 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -57,8 +57,23 @@ struct backtrace
57}; 57};
58 58
59struct backtrace *backtrace_list; 59struct backtrace *backtrace_list;
60
61#if !BYTE_MARK_STACK
62static
63#endif
60struct catchtag *catchlist; 64struct catchtag *catchlist;
61 65
66/* Chain of condition handlers currently in effect.
67 The elements of this chain are contained in the stack frames
68 of Fcondition_case and internal_condition_case.
69 When an error is signaled (by calling Fsignal, below),
70 this chain is searched for an element that applies. */
71
72#if !BYTE_MARK_STACK
73static
74#endif
75struct handler *handlerlist;
76
62#ifdef DEBUG_GCPRO 77#ifdef DEBUG_GCPRO
63/* Count levels of GCPRO to detect failure to UNGCPRO. */ 78/* Count levels of GCPRO to detect failure to UNGCPRO. */
64int gcpro_level; 79int gcpro_level;
@@ -1345,14 +1360,6 @@ usage: (unwind-protect BODYFORM UNWINDFORMS...) */)
1345 return unbind_to (count, val); 1360 return unbind_to (count, val);
1346} 1361}
1347 1362
1348/* Chain of condition handlers currently in effect.
1349 The elements of this chain are contained in the stack frames
1350 of Fcondition_case and internal_condition_case.
1351 When an error is signaled (by calling Fsignal, below),
1352 this chain is searched for an element that applies. */
1353
1354struct handler *handlerlist;
1355
1356DEFUN ("condition-case", Fcondition_case, Scondition_case, 2, UNEVALLED, 0, 1363DEFUN ("condition-case", Fcondition_case, Scondition_case, 2, UNEVALLED, 0,
1357 doc: /* Regain control when an error is signaled. 1364 doc: /* Regain control when an error is signaled.
1358Executes BODYFORM and returns its value if no error happens. 1365Executes BODYFORM and returns its value if no error happens.
@@ -3629,6 +3636,7 @@ If NFRAMES is more than the number of frames, the value is nil. */)
3629} 3636}
3630 3637
3631 3638
3639#if BYTE_MARK_STACK
3632void 3640void
3633mark_backtrace (void) 3641mark_backtrace (void)
3634{ 3642{
@@ -3648,6 +3656,7 @@ mark_backtrace (void)
3648 mark_object (backlist->args[i]); 3656 mark_object (backlist->args[i]);
3649 } 3657 }
3650} 3658}
3659#endif
3651 3660
3652void 3661void
3653syms_of_eval (void) 3662syms_of_eval (void)