----------------------------------- xalloc - safe memory allocation ----------------------------------- this module implements malloc and friends + some extensions. if __DEBUG__ symbol is defined. the functions will provide extended debug logic and kills the program (passing 0 as size to malloc for example). the funtions will at all times kill the program if memory can't be allocated for some reason, this makes the need for client-code to check for null pointers returned by these functions redundant. -- functions xmalloc(): just like malloc, this function allocates a block of memory of 'size' bytes. if compiled with the __DEBUG__ symbol, the function will not allow zero size xmallocz(): exactly like xmalloc but will initialize the block with zero's. xrealloc(): reallocates a previous allocated block of memory to 'size' bytes. if compiled with the __DEBUG__ symbol, the function will not allow zero size xstrdup(): allocates and copies the string 's' to a new memory location and returns it to the user. if compiled with the __DEBUG__ symbol, the function will not allow 's' to be a NULL pointer xfree(): free's a previous allocated block (pointed to by 'ptr') that is allocated by xmalloc/malloc. if compiled with the __DEBUG__ symbol, the function will not allow 'ptr' to be a NULL pointer