]> git.sur5r.net Git - openldap/commitdiff
Add a note about sl_malloc stack-based behavior
authorHoward Chu <hyc@openldap.org>
Sat, 14 Nov 2009 23:25:14 +0000 (23:25 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 14 Nov 2009 23:25:14 +0000 (23:25 +0000)
servers/slapd/sl_malloc.c

index 660c59842d271f66272846662448a17c8cd9ea9f..ad4c1d6e7a7cbf92ae48f92636e74be0cb2766fc 100644 (file)
@@ -90,6 +90,14 @@ slap_sl_mem_init()
 static struct slab_heap *slheap;
 #endif
 
+/* This allocator always returns memory aligned on a 2-int boundary.
+ *
+ * The stack-based allocator stores the size as a ber_len_t at both
+ * the head and tail of the allocated block. When freeing a block, the
+ * tail length is ORed with 1 to mark it as free. Freed space can only
+ * be reclaimed from the tail forward. If the tail block is never freed,
+ * nothing else will be reclaimed until the slab is reset...
+ */
 void *
 slap_sl_mem_create(
        ber_len_t size,