OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [final_interface/] [gdb-5.0/] [readline/] [xmalloc.c] - Diff between revs 106 and 114

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 106 Rev 114
/* xmalloc.c -- safe versions of malloc and realloc */
/* xmalloc.c -- safe versions of malloc and realloc */
 
 
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991 Free Software Foundation, Inc.
 
 
   This file is part of GNU Readline, a library for reading lines
   This file is part of GNU Readline, a library for reading lines
   of text with interactive input and history editing.
   of text with interactive input and history editing.
 
 
   Readline is free software; you can redistribute it and/or modify it
   Readline is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 1, or (at your option) any
   Free Software Foundation; either version 1, or (at your option) any
   later version.
   later version.
 
 
   Readline is distributed in the hope that it will be useful, but
   Readline is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.
   General Public License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with Readline; see the file COPYING.  If not, write to the Free
   along with Readline; see the file COPYING.  If not, write to the Free
   Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
   Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
 
 
#if defined (HAVE_CONFIG_H)
#if defined (HAVE_CONFIG_H)
#include <config.h>
#include <config.h>
#endif
#endif
 
 
#include <stdio.h>
#include <stdio.h>
 
 
#if defined (HAVE_STDLIB_H)
#if defined (HAVE_STDLIB_H)
#  include <stdlib.h>
#  include <stdlib.h>
#else
#else
#  include "ansi_stdlib.h"
#  include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
#endif /* HAVE_STDLIB_H */
 
 
static void memory_error_and_abort ();
static void memory_error_and_abort ();
 
 
/* **************************************************************** */
/* **************************************************************** */
/*                                                                  */
/*                                                                  */
/*                 Memory Allocation and Deallocation.              */
/*                 Memory Allocation and Deallocation.              */
/*                                                                  */
/*                                                                  */
/* **************************************************************** */
/* **************************************************************** */
 
 
/* Return a pointer to free()able block of memory large enough
/* Return a pointer to free()able block of memory large enough
   to hold BYTES number of bytes.  If the memory cannot be allocated,
   to hold BYTES number of bytes.  If the memory cannot be allocated,
   print an error message and abort. */
   print an error message and abort. */
char *
char *
xmalloc (bytes)
xmalloc (bytes)
     int bytes;
     int bytes;
{
{
  char *temp;
  char *temp;
 
 
  temp = (char *)malloc (bytes);
  temp = (char *)malloc (bytes);
  if (temp == 0)
  if (temp == 0)
    memory_error_and_abort ("xmalloc");
    memory_error_and_abort ("xmalloc");
  return (temp);
  return (temp);
}
}
 
 
char *
char *
xrealloc (pointer, bytes)
xrealloc (pointer, bytes)
     char *pointer;
     char *pointer;
     int bytes;
     int bytes;
{
{
  char *temp;
  char *temp;
 
 
  temp = pointer ? (char *)realloc (pointer, bytes) : (char *)malloc (bytes);
  temp = pointer ? (char *)realloc (pointer, bytes) : (char *)malloc (bytes);
 
 
  if (temp == 0)
  if (temp == 0)
    memory_error_and_abort ("xrealloc");
    memory_error_and_abort ("xrealloc");
  return (temp);
  return (temp);
}
}
 
 
static void
static void
memory_error_and_abort (fname)
memory_error_and_abort (fname)
     char *fname;
     char *fname;
{
{
  fprintf (stderr, "%s: out of virtual memory\n", fname);
  fprintf (stderr, "%s: out of virtual memory\n", fname);
  exit (2);
  exit (2);
}
}
 
 
/* Use this as the function to call when adding unwind protects so we
/* Use this as the function to call when adding unwind protects so we
   don't need to know what free() returns. */
   don't need to know what free() returns. */
void
void
xfree (string)
xfree (string)
     char *string;
     char *string;
{
{
  if (string)
  if (string)
    free (string);
    free (string);
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.