void *lib_AllocMem(unsigned long size, unsigned long attributes) { #ifdef LIB_DEBUG void *ptr; if (attributes & MEMF_CLEAR) { ptr = lib_debug_libc_calloc(1, size); } else { ptr = lib_debug_libc_malloc(size); } #else void *ptr = AllocMem(size, attributes); #endif #ifndef __OS2__ if (ptr == NULL && size > 0) { fprintf(stderr, "error: lib_AllocMem failed\n"); exit(-1); } #endif #ifdef LIB_DEBUG lib_debug_alloc(ptr, size, 1); #endif return ptr; }
void *lib_AllocVec(unsigned long size, unsigned long attributes) { #ifdef LIB_DEBUG void *ptr; if (attributes & MEMF_CLEAR) { ptr = lib_debug_libc_calloc(1, size); } else { ptr = lib_debug_libc_malloc(size); } #else void *ptr = AllocVec(size, attributes); #endif #ifndef __OS2__ if (ptr == NULL && size > 0) { exit(-1); } #endif #ifdef LIB_DEBUG lib_debug_alloc(ptr, size, 1); #endif return ptr; }
/* Like calloc, but abort if not enough memory is available. */ void *lib_calloc(size_t nmemb, size_t size) { #ifdef LIB_DEBUG void *ptr = lib_debug_libc_calloc(nmemb, size); #else void *ptr = calloc(nmemb, size); #endif #ifndef __OS2__ if (ptr == NULL && (size * nmemb) > 0) exit(-1); #endif #ifdef LIB_DEBUG lib_debug_alloc(ptr, size * nmemb, 1); #endif return ptr; }
/* Like calloc, but abort if not enough memory is available. */ void *lib_calloc(size_t nmemb, size_t size) { #ifdef LIB_DEBUG void *ptr = lib_debug_libc_calloc(nmemb, size); #else void *ptr = calloc(nmemb, size); #endif #ifndef __OS2__ if (ptr == NULL && (size * nmemb) > 0) { fprintf(stderr, "error: lib_calloc failed\n"); exit(-1); } #endif #ifdef LIB_DEBUG lib_debug_alloc(ptr, size * nmemb, 1); #endif return ptr; }