Mercurial > hg > xemacs-beta
comparison src/event-msw.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 | 28426972f654 |
children | 2b6fa2618f76 |
comparison
equal
deleted
inserted
replaced
850:f915ad7befaf | 851:e7ee5f8bde58 |
---|---|
1739 return (HDDEDATA) DDE_FBUSY; | 1739 return (HDDEDATA) DDE_FBUSY; |
1740 | 1740 |
1741 if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)) | 1741 if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)) |
1742 { | 1742 { |
1743 DWORD len = DdeGetData (hdata, NULL, 0, 0); | 1743 DWORD len = DdeGetData (hdata, NULL, 0, 0); |
1744 LPBYTE extcmd = (LPBYTE) alloca (len+1); | 1744 LPBYTE extcmd = (LPBYTE) ALLOCA (len+1); |
1745 Intbyte *cmd; | 1745 Intbyte *cmd; |
1746 Intbyte *end; | 1746 Intbyte *end; |
1747 struct gcpro gcpro1, gcpro2; | 1747 struct gcpro gcpro1, gcpro2; |
1748 Lisp_Object l_dndlist = Qnil; | 1748 Lisp_Object l_dndlist = Qnil; |
1749 Lisp_Object emacs_event = Fmake_event (Qnil, Qnil); | 1749 Lisp_Object emacs_event = Fmake_event (Qnil, Qnil); |
3332 Charcount len = qxeDragQueryFile ((HDROP) wParam, i, NULL, 0); | 3332 Charcount len = qxeDragQueryFile ((HDROP) wParam, i, NULL, 0); |
3333 /* The URLs that we make here aren't correct according to section | 3333 /* The URLs that we make here aren't correct according to section |
3334 * 3.10 of rfc1738 because they're missing the //<host>/ part and | 3334 * 3.10 of rfc1738 because they're missing the //<host>/ part and |
3335 * because they may contain reserved characters. But that's OK - | 3335 * because they may contain reserved characters. But that's OK - |
3336 * they just need to be good enough to keep dragdrop.el happy. */ | 3336 * they just need to be good enough to keep dragdrop.el happy. */ |
3337 fname_ext = (Extbyte *) alloca ((len + 1) * XETCHAR_SIZE); | 3337 fname_ext = (Extbyte *) ALLOCA ((len + 1) * XETCHAR_SIZE); |
3338 qxeDragQueryFile ((HDROP) wParam, i, fname_ext, len + 1); | 3338 qxeDragQueryFile ((HDROP) wParam, i, fname_ext, len + 1); |
3339 | 3339 |
3340 TO_INTERNAL_FORMAT (DATA, (fname_ext, len * XETCHAR_SIZE), | 3340 TO_INTERNAL_FORMAT (DATA, (fname_ext, len * XETCHAR_SIZE), |
3341 ALLOCA, (fname, fnamelen), | 3341 ALLOCA, (fname, fnamelen), |
3342 Qmswindows_tstr); | 3342 Qmswindows_tstr); |