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

1.1       misho       1: /* xmalloc.c -- safe versions of malloc and realloc */
                      2: 
1.1.1.2 ! misho       3: /* Copyright (C) 1991-2017 Free Software Foundation, Inc.
1.1       misho       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
1.1.1.2 ! misho      45: memory_error_and_abort (char *fname)
1.1       misho      46: {
                     47:   fprintf (stderr, "%s: out of virtual memory\n", fname);
                     48:   exit (2);
                     49: }
                     50: 
                     51: /* Return a pointer to free()able block of memory large enough
                     52:    to hold BYTES number of bytes.  If the memory cannot be allocated,
                     53:    print an error message and abort. */
                     54: PTR_T
1.1.1.2 ! misho      55: xmalloc (size_t bytes)
1.1       misho      56: {
                     57:   PTR_T temp;
                     58: 
                     59:   temp = malloc (bytes);
                     60:   if (temp == 0)
                     61:     memory_error_and_abort ("xmalloc");
                     62:   return (temp);
                     63: }
                     64: 
                     65: PTR_T
1.1.1.2 ! misho      66: xrealloc (PTR_T pointer, size_t bytes)
1.1       misho      67: {
                     68:   PTR_T temp;
                     69: 
                     70:   temp = pointer ? realloc (pointer, bytes) : malloc (bytes);
                     71: 
                     72:   if (temp == 0)
                     73:     memory_error_and_abort ("xrealloc");
                     74:   return (temp);
                     75: }

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