* eval.c (internal_lisp_condition_case): Don't overrun the stack

when configured --with-wide-int on typical 32-bit platforms.
This commit is contained in:
Paul Eggert 2014-09-01 23:29:01 -07:00
parent 0e4c8f1856
commit 7a930c3c4c
2 changed files with 6 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2014-09-02 Paul Eggert <eggert@cs.ucla.edu>
* eval.c (internal_lisp_condition_case): Don't overrun the stack
when configured --with-wide-int on typical 32-bit platforms.
2014-08-31 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (display_and_set_cursor): Call erase_phys_cursor also

View file

@ -1280,7 +1280,7 @@ internal_lisp_condition_case (volatile Lisp_Object var, Lisp_Object bodyform,
{ /* The first clause is the one that should be checked first, so it should
be added to handlerlist last. So we build in `clauses' a table that
contains `handlers' but in reverse order. */
Lisp_Object *clauses = alloca (clausenb * sizeof (Lisp_Object *));
Lisp_Object *clauses = alloca (clausenb * sizeof *clauses);
Lisp_Object *volatile clauses_volatile = clauses;
int i = clausenb;
for (val = handlers; CONSP (val); val = XCDR (val))