]> code.delx.au - gnu-emacs/blobdiff - src/alloca.c
*** empty log message ***
[gnu-emacs] / src / alloca.c
index 4b574374bffa86b8061883142e6a3f2a3e882f95..e8c8319adc49d8f412d06916cc31ade00e9065c5 100644 (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();
@@ -516,3 +512,6 @@ i00afunc (long address)
 
 # endif /* no alloca */
 #endif /* not GCC version 2 */
+
+/* arch-tag: 5c9901c8-3cd4-453e-bd66-d9035a175ee3
+   (do not change this comment) */