summaryrefslogtreecommitdiffstats
path: root/src/ctx.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-01-07 12:19:17 -0500
committerTavian Barnes <tavianator@tavianator.com>2024-01-07 12:19:17 -0500
commit4a36bb92a5bbdc41965a6d2c6eae6cdca5983474 (patch)
tree1f2767e349ece3229a8da22ba58d905309e99dfa /src/ctx.c
parent70acbc194fa1cc4972293d4e3affee5ba6fe5539 (diff)
downloadbfs-4a36bb92a5bbdc41965a6d2c6eae6cdca5983474.tar.xz
expr: Make expressions variadic
Rather than only unary/binary expressions, we now support an arbitrary number of children. The optimizer has been re-written almost completely and now supports optimal reordering of longer expression chains, rather than just arm-swapping. Fixes #85.
Diffstat (limited to 'src/ctx.c')
-rw-r--r--src/ctx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ctx.c b/src/ctx.c
index a3c5140..1f3e72e 100644
--- a/src/ctx.c
+++ b/src/ctx.c
@@ -241,7 +241,7 @@ int bfs_ctx_free(struct bfs_ctx *ctx) {
free_colors(ctx->colors);
- for_slist (struct bfs_expr, expr, &ctx->expr_list) {
+ for_slist (struct bfs_expr, expr, &ctx->expr_list, freelist) {
bfs_expr_clear(expr);
}
arena_destroy(&ctx->expr_arena);