summaryrefslogtreecommitdiff
path: root/graphics/asymptote/gc/include/leak_detector.h
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/gc/include/leak_detector.h')
-rw-r--r--graphics/asymptote/gc/include/leak_detector.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/graphics/asymptote/gc/include/leak_detector.h b/graphics/asymptote/gc/include/leak_detector.h
new file mode 100644
index 0000000000..c85502c444
--- /dev/null
+++ b/graphics/asymptote/gc/include/leak_detector.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2000-2011 by Hewlett-Packard Development Company.
+ * All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+ * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program
+ * for any purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is granted,
+ * provided the above notices are retained, and a notice that the code was
+ * modified is included with the above copyright notice.
+ */
+
+#ifndef GC_LEAK_DETECTOR_H
+#define GC_LEAK_DETECTOR_H
+
+/* Include leak_detector.h (e.g., via GCC --include directive) */
+/* to turn libgc into a leak detector. */
+
+#ifndef GC_DEBUG
+# define GC_DEBUG
+#endif
+#include "gc.h"
+
+#ifndef GC_DONT_INCLUDE_STDLIB
+ /* We ensure stdlib.h and string.h are included before */
+ /* redirecting malloc() and the accompanying functions. */
+# include <stdlib.h>
+# include <string.h>
+#endif
+
+#undef malloc
+#define malloc(n) GC_MALLOC(n)
+#undef calloc
+#define calloc(m,n) GC_MALLOC((m)*(n))
+#undef free
+#define free(p) GC_FREE(p)
+#undef realloc
+#define realloc(p,n) GC_REALLOC(p,n)
+
+#undef strdup
+#define strdup(s) GC_STRDUP(s)
+#undef strndup
+#define strndup(s,n) GC_STRNDUP(s,n)
+
+#ifdef GC_REQUIRE_WCSDUP
+ /* The collector should be built with GC_REQUIRE_WCSDUP */
+ /* defined as well to redirect wcsdup(). */
+# include <wchar.h>
+# undef wcsdup
+# define wcsdup(s) GC_WCSDUP(s)
+#endif
+
+#undef memalign
+#define memalign(a,n) GC_memalign(a,n)
+#undef posix_memalign
+#define posix_memalign(p,a,n) GC_posix_memalign(p,a,n)
+
+#undef malloc_usable_size
+#define malloc_usable_size(p) GC_size(p)
+
+#ifndef CHECK_LEAKS
+# define CHECK_LEAKS() GC_gcollect()
+ /* Note 1: CHECK_LEAKS does not have GC prefix (preserved for */
+ /* backward compatibility). */
+ /* Note 2: GC_gcollect() is also called automatically in the */
+ /* leak-finding mode at program exit. */
+#endif
+
+#endif /* GC_LEAK_DETECTOR_H */