| 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.
 
 
 
 |