]> git.sur5r.net Git - cc65/blobdiff - include/_heap.h
Changed the way, used blocks are managed
[cc65] / include / _heap.h
index f4019da205fb82d1820d6171a4bd11eb9c65e526..8ac9064c3dcb82050890eeb16d228b1ef3c11901 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * _heap.h
  *
- * Ullrich von Bassewitz, 03.06.1998
+ * Ullrich von Bassewitz, 1998-06-03, 2004-12-19
  *
  */
 
 
 
 
+/* Structure that preceeds a user block in most cases. 
+ * The aligned_malloc function may generate blocks where the start pointer
+ * and size are splitted to handle a memory hole that is needed for 
+ * alignment.
+ */
+struct usedblock {
+    unsigned            size;
+    struct usedblock*   start;
+};
+
 /* Space needed for administering used blocks */
-#define HEAP_ADMIN_SPACE        sizeof (unsigned)
+#define HEAP_ADMIN_SPACE        sizeof (struct usedblock)
 
 /* The data type used to implement the free list.
  * Beware: Field order is significant!
- */
+ */                                                      
 struct freeblock {
     unsigned           size;
     struct freeblock*          next;