changeset 52277:26b0352eaa49

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.
author Dave Love <fx@gnu.org>
date Wed, 20 Aug 2003 16:47:48 +0000
parents 5623f26dff58
children 1d35d66f8132
files src/alloca.c
diffstat 1 files changed, 22 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/alloca.c	Wed Aug 20 16:46:33 2003 +0000
+++ b/src/alloca.c	Wed Aug 20 16:47:48 2003 +0000
@@ -36,7 +36,6 @@
 #endif
 
 #ifdef DO_BLOCK_INPUT
-# include "lisp.h"
 # include "blockinput.h"
 #endif
 
@@ -58,7 +57,10 @@
 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 @@
 #   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 @@
   /* Allocate combined header + user data storage.  */
 
   {
+    /* Address of header.  */
     register pointer new = malloc (sizeof (header) + size);
-    /* Address of header.  */
 
     if (new == 0)
       abort();