Function silc_srealloc
SYNOPSIS
void *silc_srealloc(SilcStack stack, SilcUInt32 old_size,
void *ptr, SilcUInt32 size);
DESCRIPTION
Change the size of the memory block indicated by `ptr' to the new
size of `size' bytes. The contents of `ptr' will not be changed.
If `ptr' is NULL the call is equivalent to silc_smalloc. If `size'
is zero (0) error will occur. Returns NULL on error and the old
pointer remain intact.
NOTES
This function reallocates successfully only if the previous allocation
to `stack' was `ptr'. If there was another memory allocation between
allocating `ptr' and this call, this routine will return NULL. The
NULL is also returned if the `size' does not fit to current stack
and allocating new block would require slow copying of the data. It
is left to the caller to decide whether to allocate new pointer and
copy the old data in case this function returns NULL.
This function can be used to reallocate only aligned memory allocated
with silc_smalloc.
If `stack' is NULL this function calls silc_realloc.
|