Annotation of embedaddon/readline/xmalloc.c, revision 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>