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 }