X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ucw%2Falloc.c;h=816da2a055cfe25d21a135aacd5604a16f219d3b;hb=959566090f98dd31eaa67d3d5959b641e5fe902b;hp=bed8c51f104a0d78dbe3e90023ea346fd4fb2320;hpb=031256ad2e123eec58521f8e3eb9496c197641d2;p=libucw.git diff --git a/ucw/alloc.c b/ucw/alloc.c index bed8c51f..816da2a0 100644 --- a/ucw/alloc.c +++ b/ucw/alloc.c @@ -7,26 +7,22 @@ * of the GNU Lesser General Public License. */ -#include "ucw/lib.h" +#include #include #include -#ifndef DEBUG_DMALLOC - void * -xmalloc(uns size) +xmalloc(size_t size) { void *x = malloc(size); if (!x) - die("Cannot allocate %d bytes of memory", size); + die("Cannot allocate %zu bytes of memory", size); return x; } -#endif - void * -xmalloc_zero(uns size) +xmalloc_zero(size_t size) { void *x = xmalloc(size); bzero(x, size); @@ -43,3 +39,13 @@ xfree(void *ptr) */ free(ptr); } + +void * +xrealloc(void *old, size_t size) +{ + /* We assume that realloc(NULL, x) works like malloc(x), which is true with the glibc. */ + void *x = realloc(old, size); + if (!x && size) + die("Cannot reallocate %zu bytes of memory", size); + return x; +}