X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Falloc.c;h=015d3397c19f28bd511bfe51307ff25a366ebfc3;hb=1481286583f3c9a3b084a38d23367314923814b6;hp=0dc815f71de75d8beb99abd8b29c13cffd8f6ffe;hpb=cb4033020c8a24d573814e6ac9192046bffdccac;p=pspp diff --git a/src/alloc.c b/src/alloc.c index 0dc815f71d..015d3397c1 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -14,104 +14,19 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #include -#include +#include "alloc.h" #include #include +#include "error.h" #include "str.h" -static void out_of_memory (void); - -/* Public functions. */ - -/* Allocates a block of SIZE bytes and returns it. - If SIZE is 0, returns a null pointer. - Aborts if unsuccessful. */ -void * -xmalloc (size_t size) -{ - void *vp; - if (size == 0) - return NULL; - - vp = malloc (size); - if (!vp) - out_of_memory (); - - return vp; -} - -/* Allocates a block of SIZE bytes, fill it with all-bits-0, and - returns it. - If SIZE is 0, returns a null pointer. - Aborts if unsuccessful. */ -void * -xcalloc (size_t size) -{ - void *vp = xmalloc (size); - memset (vp, 0, size); - return vp; -} - -/* If SIZE is 0, then block PTR is freed and a null pointer is - returned. - Otherwise, if PTR is a null pointer, then a new block is allocated - and returned. - Otherwise, block PTR is reallocated to be SIZE bytes in size and - the new location of the block is returned. - Aborts if unsuccessful. */ -void * -xrealloc (void *ptr, size_t size) -{ - void *vp; - if (!size) - { - if (ptr) - free (ptr); - - return NULL; - } - - if (ptr) - vp = realloc (ptr, size); - else - vp = malloc (size); - - if (!vp) - out_of_memory (); - - return vp; -} - -/* Makes a copy of string S in malloc()'d memory and returns the copy. - S must not be a null pointer. */ -char * -xstrdup (const char *s) -{ - size_t size; - char *t; - - assert (s != NULL); - - size = strlen (s) + 1; - - t = malloc (size); - if (!t) - out_of_memory (); - - memcpy (t, s, size); - return t; -} - -/* Private functions. */ - /* Report an out-of-memory condition and abort execution. */ -static void +void out_of_memory (void) { - fprintf (stderr, "virtual memory exhausted\n"); - exit (EXIT_FAILURE); + xalloc_die (); }