aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMattias EngdegÄrd2023-04-13 17:25:25 +0200
committerMattias EngdegÄrd2023-04-13 17:25:25 +0200
commitabb43a62365b378b27a85456db42dfa34d2ad760 (patch)
treebbc5bcd3aca5d2759164501185cb2058ffc72b2b /src
parentdf4a6342fa439de49451f6c48c7bfe639e8a3d6e (diff)
downloademacs-abb43a62365b378b27a85456db42dfa34d2ad760.tar.gz
emacs-abb43a62365b378b27a85456db42dfa34d2ad760.zip
Stop pretending that specpdl overflow can ever occur
* src/eval.c (grow_specpdl_allocation): Remove impossible error. * src/data.c (syms_of_data): Note obsolence of `excessive-variable-binding`.
Diffstat (limited to 'src')
-rw-r--r--src/data.c5
-rw-r--r--src/eval.c3
2 files changed, 4 insertions, 4 deletions
diff --git a/src/data.c b/src/data.c
index 8dc5000424e..4ab37e86ce5 100644
--- a/src/data.c
+++ b/src/data.c
@@ -4217,10 +4217,11 @@ syms_of_data (void)
4217 Fput (Qrecursion_error, Qerror_message, build_pure_c_string 4217 Fput (Qrecursion_error, Qerror_message, build_pure_c_string
4218 ("Excessive recursive calling error")); 4218 ("Excessive recursive calling error"));
4219 4219
4220 PUT_ERROR (Qexcessive_variable_binding, recursion_tail,
4221 "Variable binding depth exceeds max-specpdl-size");
4222 PUT_ERROR (Qexcessive_lisp_nesting, recursion_tail, 4220 PUT_ERROR (Qexcessive_lisp_nesting, recursion_tail,
4223 "Lisp nesting exceeds `max-lisp-eval-depth'"); 4221 "Lisp nesting exceeds `max-lisp-eval-depth'");
4222 /* Error obsolete (from 29.1), kept for compatibility. */
4223 PUT_ERROR (Qexcessive_variable_binding, recursion_tail,
4224 "Variable binding depth exceeds max-specpdl-size");
4224 4225
4225 /* Types that type-of returns. */ 4226 /* Types that type-of returns. */
4226 DEFSYM (Qinteger, "integer"); 4227 DEFSYM (Qinteger, "integer");
diff --git a/src/eval.c b/src/eval.c
index 1a4d3ad0307..545a280ae91 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2373,8 +2373,7 @@ grow_specpdl_allocation (void)
2373 union specbinding *pdlvec = specpdl - 1; 2373 union specbinding *pdlvec = specpdl - 1;
2374 ptrdiff_t size = specpdl_end - specpdl; 2374 ptrdiff_t size = specpdl_end - specpdl;
2375 ptrdiff_t pdlvecsize = size + 1; 2375 ptrdiff_t pdlvecsize = size + 1;
2376 if (max_size <= size) 2376 eassert (max_size > size);
2377 xsignal0 (Qexcessive_variable_binding); /* Can't happen, essentially. */
2378 pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl); 2377 pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl);
2379 specpdl = pdlvec + 1; 2378 specpdl = pdlvec + 1;
2380 specpdl_end = specpdl + pdlvecsize - 1; 2379 specpdl_end = specpdl + pdlvecsize - 1;