void * xrealloc_debug (void *ptr, size_t newsize, const char *source_file, int source_line) { void *newptr = xrealloc_real (ptr, newsize); if (!ptr) { ++malloc_count; register_ptr (newptr, source_file, source_line); } else if (newptr != ptr) { unregister_ptr (ptr); register_ptr (newptr, source_file, source_line); } return newptr; }
char * xstrdup_debug (const char *s, const char *source_file, int source_line) { char *copy = xstrdup_real (s); ++malloc_count; register_ptr (copy, source_file, source_line); return copy; }
void * xmalloc_debug (size_t size, const char *source_file, int source_line) { void *ptr = xmalloc_real (size); ++malloc_count; register_ptr (ptr, source_file, source_line); return ptr; }
void *debugging_calloc(size_t numb, size_t size, const char *source_file, int source_line) { void *ptr = checking_calloc(numb, size); pthread_mutex_lock(&s_regptr_mutex); ++malloc_count; malloc_size += (numb * size); register_ptr(ptr, numb*size, source_file, source_line); pthread_mutex_unlock(&s_regptr_mutex); return ptr; }
char *debugging_strdup( const char *s, const char *source_file, int source_line) { char *copy = checking_strdup(s); size_t size = strlen(copy) + 1; pthread_mutex_lock(&s_regptr_mutex); ++malloc_count; malloc_size += size; register_ptr(copy, size, source_file, source_line); pthread_mutex_unlock(&s_regptr_mutex); return copy; }