]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/alloc.c
Merge remote-tracking branch 'origin/master'
[libucw.git] / ucw / alloc.c
index 4f531366ec6eedaa6643732b3cc670a39ee40cb0..816da2a055cfe25d21a135aacd5604a16f219d3b 100644 (file)
@@ -7,22 +7,22 @@
  *     of the GNU Lesser General Public License.
  */
 
-#include "ucw/lib.h"
+#include <ucw/lib.h>
 
 #include <stdlib.h>
 #include <string.h>
 
 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;
+}