summaryrefslogtreecommitdiff
path: root/src/emacs.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-10-03 15:55:43 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2018-10-03 15:57:26 -0700
commit945a7622326f7d93dd318f01d54f6bf23e0021cf (patch)
treec2226b26699d51b2597ae0be2955db02571b9782 /src/emacs.c
parent5cbce95796a2a8b8857fb9e289a9fd9a1158677b (diff)
downloademacs-945a7622326f7d93dd318f01d54f6bf23e0021cf.tar.gz
Fix emacs_re_safe_alloca calculation
Problem and draft fix noted by Eli Zaretskii in: https://lists.gnu.org/r/emacs-devel/2018-10/msg00022.html * src/emacs.c (main): Fix arithmetic used in calculation of emacs_re_safe_alloca.
Diffstat (limited to 'src/emacs.c')
-rw-r--r--src/emacs.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/emacs.c b/src/emacs.c
index b1c96d18285..ddaaf3fed51 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -888,11 +888,11 @@ main (int argc, char **argv)
lim = newlim;
}
}
- /* If the stack is big enough, let regex-emacs.c more of it before
- falling back to heap allocation. */
- emacs_re_safe_alloca = max
- (min (lim - extra, SIZE_MAX) * (min_ratio / ratio),
- MAX_ALLOCA);
+ /* If the stack is big enough, let regex-emacs.c use more of it
+ before falling back to heap allocation. */
+ ptrdiff_t max_failures
+ = min (lim - extra, min (PTRDIFF_MAX, SIZE_MAX)) / ratio;
+ emacs_re_safe_alloca = max (max_failures * min_ratio, MAX_ALLOCA);
}
#endif /* HAVE_SETRLIMIT and RLIMIT_STACK and not CYGWIN */