#ifndef GC_IGNORE_WARN /* Ignore misleading "Out of Memory!" warning (which is printed on */ /* every GC_MALLOC call below) by defining this macro before "gc.h" */ /* inclusion. */ # define GC_IGNORE_WARN #endif
#ifndef GC_MAXIMUM_HEAP_SIZE # define GC_MAXIMUM_HEAP_SIZE 100 * 1024 * 1024 # define GC_INITIAL_HEAP_SIZE GC_MAXIMUM_HEAP_SIZE / 20 /* Otherwise heap expansion aborts when deallocating large block. */ /* That's OK. We test this corner case mostly to make sure that */ /* it fails predictably. */ #endif
#ifndef GC_ATTR_ALLOC_SIZE /* Omit alloc_size attribute to avoid compiler warnings about */ /* exceeding maximum object size when values close to GC_SWORD_MAX */ /* are passed to GC_MALLOC. */ # define GC_ATTR_ALLOC_SIZE(argnum) /* empty */ #endif
#include"gc.h"
/* * Check that very large allocation requests fail. "Success" would usually * indicate that the size was somehow converted to a negative * number. Clients shouldn't do this, but we should fail in the * expected manner.
*/
#define CHECK_ALLOC_FAILED(r, sz_str) \ do { \ if (NULL != (r)) { \
fprintf(stderr, \ "Size " sz_str " allocation unexpectedly succeeded\n"); \ exit(1); \
} \
} while (0)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.