X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Falloc.c;h=816da2a055cfe25d21a135aacd5604a16f219d3b;hb=bc2bbfcbe76e78db9cde27455ddbcfe1ddcc61d6;hp=4f531366ec6eedaa6643732b3cc670a39ee40cb0;hpb=1cf8ac51f5495ccd5187dc220ffc69e95d6e0cfc;p=libucw.git diff --git a/ucw/alloc.c b/ucw/alloc.c index 4f531366..816da2a0 100644 --- a/ucw/alloc.c +++ b/ucw/alloc.c @@ -7,22 +7,22 @@ * of the GNU Lesser General Public License. */ -#include "ucw/lib.h" +#include #include #include 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; } void * -xmalloc_zero(uns size) +xmalloc_zero(size_t size) { void *x = xmalloc(size); bzero(x, size); @@ -39,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; +}