1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-11 10:20:33 -08:00

Some merging with gnulib. Change logic and doc

concerning (x)malloc/(x)free -- no longer Emacs-specific.
[DO_BLOCK_INPUT]: Don't include lisp.h.
(xmalloc, xfree): Declare.
(malloc): Don't declare.
This commit is contained in:
Dave Love 2003-08-20 16:47:48 +00:00
parent d748931263
commit 41634167eb

View file

@ -36,7 +36,6 @@
#endif
#ifdef DO_BLOCK_INPUT
# include "lisp.h"
# include "blockinput.h"
#endif
@ -58,7 +57,10 @@ you
lose
-- must know STACK_DIRECTION at compile-time
/* Using #error here is not wise since this file should work for
old and obscure compilers. */
old and obscure compilers.
As far as I know, using it is OK if it's indented -- at least for
pcc-based processors. -- fx */
# endif /* STACK_DIRECTION undefined */
# endif /* static */
# endif /* emacs */
@ -73,38 +75,32 @@ long i00afunc ();
# define ADDRESS_FUNCTION(arg) &(arg)
# endif
# ifdef POINTER_TYPE
# ifndef POINTER_TYPE
# ifdef __STDC__
# define POINTER_TYPE void
# else
# define POINTER_TYPE char
# endif
# endif
typedef POINTER_TYPE *pointer;
# else /* not POINTER_TYPE */
# if __STDC__
typedef void *pointer;
# else /* not __STDC__ */
typedef char *pointer;
# endif /* not __STDC__ */
# endif /* not POINTER_TYPE */
# ifndef NULL
# define NULL 0
# endif
/* Different portions of Emacs need to call different versions of
malloc. The Emacs executable needs alloca to call xmalloc, because
ordinary malloc isn't protected from input signals. On the other
hand, the utilities in lib-src need alloca to call malloc; some of
them are very simple, and don't have an xmalloc routine.
Non-Emacs programs expect this to call xmalloc.
/* The Emacs executable needs alloca to call xmalloc, because ordinary
malloc isn't protected from input signals. xmalloc also checks for
out-of-memory errors, so we should use it generally.
Callers below should use malloc. */
# ifdef emacs
# undef malloc
# define malloc xmalloc
# ifdef EMACS_FREE
# define free EMACS_FREE
# endif
# endif
extern pointer malloc ();
# undef malloc
# define malloc xmalloc
# undef free
# define free xfree
void *xmalloc _P ((size_t));
void xfree _P ((void *))
/* Define STACK_DIRECTION if you know the direction of stack
growth for your system; otherwise it will be automatically
@ -229,8 +225,8 @@ alloca (size)
/* Allocate combined header + user data storage. */
{
register pointer new = malloc (sizeof (header) + size);
/* Address of header. */
register pointer new = malloc (sizeof (header) + size);
if (new == 0)
abort();