diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ctx.c | 7 | ||||
-rw-r--r-- | src/ctx.h | 4 | ||||
-rw-r--r-- | src/expr.c | 3 | ||||
-rw-r--r-- | src/expr.h | 2 |
4 files changed, 5 insertions, 11 deletions
@@ -44,8 +44,7 @@ struct bfs_ctx *bfs_ctx_new(void) { return NULL; } - SLIST_INIT(&ctx->expr_list); - ARENA_INIT(&ctx->expr_arena, struct bfs_expr); + ARENA_INIT(&ctx->exprs, struct bfs_expr); ctx->maxdepth = INT_MAX; ctx->flags = BFTW_RECOVER; @@ -285,10 +284,10 @@ int bfs_ctx_free(struct bfs_ctx *ctx) { cfclose(cerr); free_colors(ctx->colors); - for_slist (struct bfs_expr, expr, &ctx->expr_list, freelist) { + for_arena (struct bfs_expr, expr, &ctx->exprs) { bfs_expr_clear(expr); } - arena_destroy(&ctx->expr_arena); + arena_destroy(&ctx->exprs); for (size_t i = 0; i < ctx->npaths; ++i) { free((char *)ctx->paths[i]); @@ -39,10 +39,8 @@ struct bfs_ctx { struct bfs_expr *expr; /** An expression for files to filter out. */ struct bfs_expr *exclude; - /** A list of allocated expressions. */ - struct bfs_exprs expr_list; /** bfs_expr arena. */ - struct arena expr_arena; + struct arena exprs; /** -mindepth option. */ int mindepth; @@ -17,7 +17,7 @@ struct bfs_expr *bfs_expr_new(struct bfs_ctx *ctx, bfs_eval_fn *eval_fn, size_t argc, char **argv, enum bfs_kind kind) { bfs_assert(kind != BFS_PATH); - struct bfs_expr *expr = arena_alloc(&ctx->expr_arena); + struct bfs_expr *expr = arena_alloc(&ctx->exprs); if (!expr) { return NULL; } @@ -28,7 +28,6 @@ struct bfs_expr *bfs_expr_new(struct bfs_ctx *ctx, bfs_eval_fn *eval_fn, size_t expr->argv = argv; expr->kind = kind; expr->probability = 0.5; - SLIST_PREPEND(&ctx->expr_list, expr, freelist); if (bfs_expr_is_parent(expr)) { SLIST_INIT(&expr->children); @@ -108,8 +108,6 @@ struct bfs_exprs { struct bfs_expr { /** This expression's next sibling, if any. */ struct bfs_expr *next; - /** The next allocated expression. */ - struct { struct bfs_expr *next; } freelist; /** The function that evaluates this expression. */ bfs_eval_fn *eval_fn; |