summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@lsi.nec.co.jp>2002-08-01 07:45:47 +0000
committerMiles Bader <miles@lsi.nec.co.jp>2002-08-01 07:45:47 +0000
commit3b836d665f469a05a64df7672065d3357dffe7d9 (patch)
treeeb564115ccf09fe098a537f338b9cb23f8d4ddb5
parent205e2b7199bac43f0feb716d24ee7ed6f23fe05c (diff)
(HEAP_MIN_SIZE): New macro.
(HEAP_MIN_FREE_AREA_SIZE): Increase size. Enable debugging if HEAP_DEBUGGING is defined.
-rw-r--r--libc/stdlib/malloc/heap.h21
1 files changed, 15 insertions, 6 deletions
diff --git a/libc/stdlib/malloc/heap.h b/libc/stdlib/malloc/heap.h
index 445b012ce..38451f091 100644
--- a/libc/stdlib/malloc/heap.h
+++ b/libc/stdlib/malloc/heap.h
@@ -52,16 +52,25 @@ struct heap_free_area
#define HEAP_ADJUST_SIZE(sz) \
(((sz) + HEAP_GRANULARITY - 1) & ~(HEAP_GRANULARITY - 1))
-/* The minimum size of a free area. It must include at least enough room
- to hold a struct heap_free_area, plus enough extra to be usefully
- allocated. */
+
+/* The minimum allocatable size. */
+#define HEAP_MIN_SIZE HEAP_ADJUST_SIZE (sizeof (struct heap_free_area))
+
+/* The minimum size of a free area; if allocating memory from a free-area
+ would make the free-area smaller than this, the allocation is simply
+ given the whole free-area instead. It must include at least enough room
+ to hold a struct heap_free_area, plus some extra to avoid excessive heap
+ fragmentation (thus increasing speed). This is only a heuristic -- it's
+ possible for smaller free-areas than this to exist (say, by realloc
+ returning the tail-end of a previous allocation), but __heap_alloc will
+ try to get rid of them when possible. */
#define HEAP_MIN_FREE_AREA_SIZE \
- (sizeof (struct heap_free_area) + HEAP_ADJUST_SIZE (1))
+ HEAP_ADJUST_SIZE (sizeof (struct heap_free_area) + 32)
-/* Change this to `#if 1' to cause the heap routines to emit debugging info
+/* Define HEAP_DEBUGGING to cause the heap routines to emit debugging info
to stderr. */
-#if 0
+#ifdef HEAP_DEBUGGING
#include <stdio.h>
static void HEAP_DEBUG (struct heap *heap, const char *str)
{