xrealloc.c (979B)
1 /************************************************************************* 2 * This file is part of Crosroads 1.23, a load balancer and fail over 3 * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. 4 * Visit http://crossroads.e-tunity.com for information. 5 *************************************************************************/ 6 #include "crossroads.h" 7 8 void *xrealloc (void *block, unsigned sz) { 9 void *newblock; 10 11 // msg ("Realloc: block=%x, sz=%u", block, sz); 12 if (! sz) { 13 free (block); 14 newblock = 0; 15 // msg ("Realloc: freed %x", block); 16 } else if (!block) { 17 if (! (newblock = malloc (sz)) ) 18 error ("Out of memory (while allocating %u bytes)", sz); 19 // msg ("Realloc: malloc'd %x (%u bytes)", newblock, sz); 20 } else { 21 if (! (newblock = realloc (block, sz)) ) 22 error ("Out of memory (while increasing block to %u bytes)", sz); 23 // msg ("Realloc'd %x to %x (%u bytes)", block, newblock, sz); 24 } 25 return (newblock); 26 } 27