#endif
#ifdef DO_BLOCK_INPUT
-# include "lisp.h"
# include "blockinput.h"
#endif
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 */
# 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
/* 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();