/* If realloc guarantees that the pointer is not destroyed if the realloc fails, then this routine can go away.  */
static void* hash_realloc(SEGMENT **p_ptr, int oldsize, int newsize)
/* If realloc guarantees that the pointer is not destroyed if the realloc fails, then this routine can go away.  */
static void* hash_realloc(SEGMENT **p_ptr, int oldsize, int newsize)
{
	register void *p;
	if (p = malloc(newsize)) {
		memmove(p, *p_ptr, oldsize);
		memset((char *)p + oldsize, 0, newsize - oldsize);
		free(*p_ptr);
		*p_ptr = p;
	}
	return (p);
}