From abb43a62365b378b27a85456db42dfa34d2ad760 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Thu, 13 Apr 2023 17:25:25 +0200 Subject: [PATCH] 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`. --- src/data.c | 5 +++-- src/eval.c | 3 +-- 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) Fput (Qrecursion_error, Qerror_message, build_pure_c_string ("Excessive recursive calling error")); - PUT_ERROR (Qexcessive_variable_binding, recursion_tail, - "Variable binding depth exceeds max-specpdl-size"); PUT_ERROR (Qexcessive_lisp_nesting, recursion_tail, "Lisp nesting exceeds `max-lisp-eval-depth'"); + /* Error obsolete (from 29.1), kept for compatibility. */ + PUT_ERROR (Qexcessive_variable_binding, recursion_tail, + "Variable binding depth exceeds max-specpdl-size"); /* Types that type-of returns. */ 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) union specbinding *pdlvec = specpdl - 1; ptrdiff_t size = specpdl_end - specpdl; ptrdiff_t pdlvecsize = size + 1; - if (max_size <= size) - xsignal0 (Qexcessive_variable_binding); /* Can't happen, essentially. */ + eassert (max_size > size); pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl); specpdl = pdlvec + 1; specpdl_end = specpdl + pdlvecsize - 1; -- 2.39.2