altos/lisp: re-use small frames
[fw/altos] / src / lisp / ao_lisp_mem.c
index e7ece96036ae1d31ce17f5d1a4a463385d3453f3..7e7464c4a59495f78752fb89464f48a4a29796a9 100644 (file)
@@ -214,8 +214,16 @@ static const struct ao_lisp_root   ao_lisp_root[] = {
 static const void ** const ao_lisp_cache[] = {
        (const void **) &ao_lisp_cons_free_list,
        (const void **) &ao_lisp_stack_free_list,
+       (const void **) &ao_lisp_frame_free_list[0],
+       (const void **) &ao_lisp_frame_free_list[1],
+       (const void **) &ao_lisp_frame_free_list[2],
+       (const void **) &ao_lisp_frame_free_list[3],
 };
 
+#if AO_LISP_FRAME_FREE != 4
+#error Unexpected AO_LISP_FRAME_FREE value
+#endif
+
 #define AO_LISP_CACHE  (sizeof (ao_lisp_cache) / sizeof (ao_lisp_cache[0]))
 
 #define AO_LISP_BUSY_SIZE      ((AO_LISP_POOL + 31) / 32)