Annotation of embedaddon/readline/xmalloc.c, revision 1.1.1.1

1.1       misho       1: /* xmalloc.c -- safe versions of malloc and realloc */
                      2: 
                      3: /* Copyright (C) 1991-2009 Free Software Foundation, Inc.
                      4: 
                      5:    This file is part of the GNU Readline Library (Readline), a library
                      6:    for reading lines of text with interactive input and history editing.      
                      7: 
                      8:    Readline is free software: you can redistribute it and/or modify
                      9:    it under the terms of the GNU General Public License as published by
                     10:    the Free Software Foundation, either version 3 of the License, or
                     11:    (at your option) any later version.
                     12: 
                     13:    Readline is distributed in the hope that it will be useful,
                     14:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                     15:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     16:    GNU General Public License for more details.
                     17: 
                     18:    You should have received a copy of the GNU General Public License
                     19:    along with Readline.  If not, see <http://www.gnu.org/licenses/>.
                     20: */
                     21: 
                     22: #define READLINE_LIBRARY
                     23: 
                     24: #if defined (HAVE_CONFIG_H)
                     25: #include <config.h>
                     26: #endif
                     27: 
                     28: #include <stdio.h>
                     29: 
                     30: #if defined (HAVE_STDLIB_H)
                     31: #  include <stdlib.h>
                     32: #else
                     33: #  include "ansi_stdlib.h"
                     34: #endif /* HAVE_STDLIB_H */
                     35: 
                     36: #include "xmalloc.h"
                     37: 
                     38: /* **************************************************************** */
                     39: /*                                                                 */
                     40: /*                Memory Allocation and Deallocation.              */
                     41: /*                                                                 */
                     42: /* **************************************************************** */
                     43: 
                     44: static void
                     45: memory_error_and_abort (fname)
                     46:      char *fname;
                     47: {
                     48:   fprintf (stderr, "%s: out of virtual memory\n", fname);
                     49:   exit (2);
                     50: }
                     51: 
                     52: /* Return a pointer to free()able block of memory large enough
                     53:    to hold BYTES number of bytes.  If the memory cannot be allocated,
                     54:    print an error message and abort. */
                     55: PTR_T
                     56: xmalloc (bytes)
                     57:      size_t bytes;
                     58: {
                     59:   PTR_T temp;
                     60: 
                     61:   temp = malloc (bytes);
                     62:   if (temp == 0)
                     63:     memory_error_and_abort ("xmalloc");
                     64:   return (temp);
                     65: }
                     66: 
                     67: PTR_T
                     68: xrealloc (pointer, bytes)
                     69:      PTR_T pointer;
                     70:      size_t bytes;
                     71: {
                     72:   PTR_T temp;
                     73: 
                     74:   temp = pointer ? realloc (pointer, bytes) : malloc (bytes);
                     75: 
                     76:   if (temp == 0)
                     77:     memory_error_and_abort ("xrealloc");
                     78:   return (temp);
                     79: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>