Mercurial > hg > xemacs-beta
comparison src/eval.c @ 1951:31d5f86eb303
[xemacs-hg @ 2004-03-15 18:01:37 by james]
Break infinite loop when out of specpdl space.
author | james |
---|---|
date | Mon, 15 Mar 2004 18:01:40 +0000 |
parents | 21549d437f09 |
children | f4702ef3fd36 |
comparison
equal
deleted
inserted
replaced
1950:b5691d548489 | 1951:31d5f86eb303 |
---|---|
5705 { | 5705 { |
5706 if (max_specpdl_size < min_max_specpdl_size) | 5706 if (max_specpdl_size < min_max_specpdl_size) |
5707 max_specpdl_size = min_max_specpdl_size; | 5707 max_specpdl_size = min_max_specpdl_size; |
5708 if (size_needed >= max_specpdl_size) | 5708 if (size_needed >= max_specpdl_size) |
5709 { | 5709 { |
5710 if (!NILP (Vdebug_on_error) || | 5710 /* Leave room for some specpdl in the debugger. */ |
5711 !NILP (Vdebug_on_signal)) | 5711 max_specpdl_size = size_needed + 100; |
5712 /* Leave room for some specpdl in the debugger. */ | 5712 if (max_specpdl_size > specpdl_size) |
5713 max_specpdl_size = size_needed + 100; | 5713 { |
5714 specpdl_size = max_specpdl_size; | |
5715 XREALLOC_ARRAY (specpdl, struct specbinding, specpdl_size); | |
5716 specpdl_ptr = specpdl + specpdl_depth(); | |
5717 } | |
5714 signal_continuable_error | 5718 signal_continuable_error |
5715 (Qstack_overflow, | 5719 (Qstack_overflow, |
5716 "Variable binding depth exceeds max-specpdl-size", Qunbound); | 5720 "Variable binding depth exceeds max-specpdl-size", Qunbound); |
5717 } | 5721 } |
5718 } | 5722 } |