Esempio n. 1
0
void debugging_free(void *ptr,
                    const char *source_file,
                    int source_line)
{
    if (NULL == ptr) {
        fprintf(stderr, "xfree(NULL) at %s:%d\n",
                source_file, source_line);
        fflush(stderr);
        abort();
    }

    pthread_mutex_lock(&s_regptr_mutex);

    if (!unregister_ptr(ptr)) {
        fprintf(stderr, "Bad xfree() at %s:%d\n",
                source_file, source_line);

        pthread_mutex_unlock(&s_regptr_mutex);

        abort();
    }

    ++free_count;

    pthread_mutex_unlock(&s_regptr_mutex);

    checking_free(ptr);
}
Esempio n. 2
0
void
xfree_debug (void *ptr, const char *source_file, int source_line)
{
  assert (ptr != NULL);
  ++free_count;
  unregister_ptr (ptr);
  free (ptr);
}
Esempio n. 3
0
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;
}