Browse Source

More fiddling with static free-areas: make sure both their size _and_
their alignment are correct.

Miles Bader 21 years ago
parent
commit
84c79075fa
1 changed files with 5 additions and 5 deletions
  1. 5 5
      libc/stdlib/malloc/heap.h

+ 5 - 5
libc/stdlib/malloc/heap.h

@@ -78,12 +78,12 @@ struct heap_free_area
 #define HEAP_DECLARE_STATIC_FREE_AREA(name, size)			      \
   static struct								      \
   {									      \
-    HEAP_GRANULARITY_TYPE space[((size)					      \
-				 - sizeof (struct heap_free_area)	      \
-				 + (HEAP_GRANULARITY - 1))		      \
-				/ HEAP_GRANULARITY];			      \
+    HEAP_GRANULARITY_TYPE aligned_space;				      \
+    char space[HEAP_ADJUST_SIZE(size)					      \
+	       - sizeof (struct heap_free_area)				      \
+	       - HEAP_GRANULARITY];					      \
     struct heap_free_area _fa;						      \
-  } name = { { (HEAP_GRANULARITY_TYPE)0 }, { (size), 0, 0 } }
+  } name = { (HEAP_GRANULARITY_TYPE)0, "", { HEAP_ADJUST_SIZE(size), 0, 0 } }
 
 
 /* Rounds SZ up to be a multiple of HEAP_GRANULARITY.  */