Home | History | Annotate | Download | only in proc
      1 // Copyright (C) 1992-1998 by Michael K. Johnson, johnsonm (at) redhat.com
      2 // Copyright 2002 Albert Cahalan
      3 //
      4 // This file is placed under the conditions of the GNU Library
      5 // General Public License, version 2, or any later version.
      6 // See file COPYING for information on distribution conditions.
      7 
      8 #include <stdlib.h>
      9 #include <stdio.h>
     10 #include "alloc.h"
     11 
     12 void *xcalloc(void *pointer, int size)
     13 {
     14 	void *ret;
     15 	free(pointer);
     16 	if (!(ret = calloc(1, size))) {
     17 		fprintf(stderr, "xcalloc: allocation error, size = %d\n", size);
     18 		exit(1);
     19 	}
     20 	return ret;
     21 }
     22 
     23 void *xmalloc(unsigned int size)
     24 {
     25 	void *p;
     26 
     27 	if (size == 0)
     28 		++size;
     29 	p = malloc(size);
     30 	if (!p) {
     31 		fprintf(stderr, "xmalloc: malloc(%d) failed", size);
     32 		perror(NULL);
     33 		exit(1);
     34 	}
     35 	return (p);
     36 }
     37 
     38 void *xrealloc(void *oldp, unsigned int size)
     39 {
     40 	void *p;
     41 
     42 	if (size == 0)
     43 		++size;
     44 	p = realloc(oldp, size);
     45 	if (!p) {
     46 		fprintf(stderr, "xrealloc: realloc(%d) failed", size);
     47 		perror(NULL);
     48 		exit(1);
     49 	}
     50 	return (p);
     51 }
     52