Listing 2: Wrapping GC_MALLOC, GC_FREE, and GC_REALLOC

/* $Id$ */

#include <stdio.h>
#include <stdlib.h>
#include <gc.h>

void *xmalloc (size_t sz)
{
  void *p = GC_MALLOC (sz);
  if (p == NULL) {
    printf ("GC_MALLOC error\n");
    abort ();
  }
  return p;
}

void *xrealloc (void *p, size_t sz)
{
  p = GC_REALLOC (p, sz);
  if (p == NULL) {
    printf ("GC_REALLOC error\n");
    abort ();
  }
  return p;
}

void xfree (void *p)
{
  GC_FREE (p);
}