version 1.18, 2006/03/25 00:05:41 |
version 1.19, 2006/03/25 01:13:23 |
|
|
{ |
{ |
void *ptr; |
void *ptr; |
|
|
if (nmemb && size && SIZE_T_MAX / nmemb < size) |
if (nmemb && size && SIZE_T_MAX / nmemb < size) |
fatal("xcalloc: nmemb * size > SIZE_T_MAX"); |
fatal("xcalloc: nmemb * size > SIZE_T_MAX"); |
if (size == 0 || nmemb == 0) |
if (size == 0 || nmemb == 0) |
fatal("xcalloc: zero size"); |
fatal("xcalloc: zero size"); |
|
|
} |
} |
|
|
void * |
void * |
xrealloc(void *ptr, size_t new_size) |
xrealloc(void *ptr, size_t nmemb, size_t size) |
{ |
{ |
void *new_ptr; |
void *new_ptr; |
|
size_t new_size = nmemb * size; |
|
|
|
if (nmemb && size && SIZE_T_MAX / nmemb < size) |
|
fatal("xrealloc: nmemb * size > SIZE_T_MAX"); |
if (new_size == 0) |
if (new_size == 0) |
fatal("xrealloc: zero size"); |
fatal("xrealloc: zero size"); |
if (ptr == NULL) |
if (ptr == NULL) |
|
|
else |
else |
new_ptr = realloc(ptr, new_size); |
new_ptr = realloc(ptr, new_size); |
if (new_ptr == NULL) |
if (new_ptr == NULL) |
fatal("xrealloc: out of memory (new_size %lu bytes)", (u_long) new_size); |
fatal("xrealloc: out of memory (new_size %lu bytes)", |
|
(u_long) new_size); |
return new_ptr; |
return new_ptr; |
} |
} |
|
|