comparison src/emacs.c @ 851:e7ee5f8bde58

[xemacs-hg @ 2002-05-23 11:46:08 by ben] fix for raymond toy's crash, alloca crashes, some recover-session improvements files.el: Recover-session improvements: Only show session files where some files can actually be recovered, and show in chronological order. subr.el, menubar-items.el: As promised to rms, the functionality in truncate-string-with-continuation-dots has been merged into truncate-string-to-width. Change callers in menubar-items.el. select.el: Document some of these funs better. Fix problem where we were doing own-clipboard twice. Makefile.in.in: Add alloca.o. Ensure that alloca.s doesn't compile into alloca.o, but allocax.o (not that it's currently used or anything.) EmacsFrame.c, abbrev.c, alloc.c, alloca.c, callint.c, callproc.c, config.h.in, device-msw.c, device-x.c, dired.c, doc.c, editfns.c, emacs.c, emodules.c, eval.c, event-Xt.c, event-msw.c, event-stream.c, file-coding.c, fileio.c, filelock.c, fns.c, glyphs-gtk.c, glyphs-msw.c, glyphs-x.c, gui-x.c, input-method-xlib.c, intl-win32.c, lisp.h, lread.c, menubar-gtk.c, menubar-msw.c, menubar.c, mule-wnnfns.c, nt.c, objects-msw.c, process-nt.c, realpath.c, redisplay-gtk.c, redisplay-output.c, redisplay-x.c, redisplay.c, search.c, select-msw.c, sysdep.c, syswindows.h, text.c, text.h, ui-byhand.c: Fix Raymond Toy's crash. Repeat to self: 2^21 - 1 is NOT the same as (2 << 21) - 1. Fix crashes due to excessive alloca(). replace alloca() with ALLOCA(), which calls the C alloca() [which uses xmalloc()] when the size is too big. Insert in various places calls to try to flush the C alloca() stored info if there is any. Add MALLOC_OR_ALLOCA(), for places that expect to be alloca()ing large blocks. This xmalloc()s when too large and records an unwind-protect to free -- relying on the caller to unbind_to() elsewhere in the function. Use it in concat(). Use MALLOC instead of ALLOCA in select-msw.c. xemacs.mak: Add alloca.o.
author ben
date Thu, 23 May 2002 11:46:46 +0000
parents bf645ed7cfe3
children 2b6fa2618f76
comparison
equal deleted inserted replaced
850:f915ad7befaf 851:e7ee5f8bde58
2308 #if defined(HAVE_SHLIB) && !defined(WIN32_NATIVE) 2308 #if defined(HAVE_SHLIB) && !defined(WIN32_NATIVE)
2309 /* This is Unix only. MS Windows NT has a library call that does 2309 /* This is Unix only. MS Windows NT has a library call that does
2310 The Right Thing on that system. Rumor has it, this must be 2310 The Right Thing on that system. Rumor has it, this must be
2311 called for GNU dld in temacs and xemacs. */ 2311 called for GNU dld in temacs and xemacs. */
2312 { 2312 {
2313 char *buf = (char *)alloca (XSTRING_LENGTH (Vinvocation_directory) 2313 char *buf = (char *)ALLOCA (XSTRING_LENGTH (Vinvocation_directory)
2314 + XSTRING_LENGTH (Vinvocation_name) 2314 + XSTRING_LENGTH (Vinvocation_name)
2315 + 2); 2315 + 2);
2316 sprintf (buf, "%s/%s", XSTRING_DATA (Vinvocation_directory), 2316 sprintf (buf, "%s/%s", XSTRING_DATA (Vinvocation_directory),
2317 XSTRING_DATA (Vinvocation_name)); 2317 XSTRING_DATA (Vinvocation_name));
2318 2318