From 2841470fd34a6ed41df94f925bbeb95819bfca9a Mon Sep 17 00:00:00 2001 From: Kimplul Date: Thu, 16 Jan 2025 08:27:51 +0200 Subject: skip a few extra allocs --- src/ast.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/ast.c') diff --git a/src/ast.c b/src/ast.c index daf393e..5ba8000 100644 --- a/src/ast.c +++ b/src/ast.c @@ -422,9 +422,15 @@ struct ast *clone_ast(struct ast *n) if (n->a0) new->a0 = clone_ast_list(n->a0); + /* don't clone defers */ + if (!(n->k == AST_BLOCK)) if (n->a1) new->a1 = clone_ast_list(n->a1); + /* don't clone expanded body, just the raw one */ + if (!(n->k == AST_TRAIT_DEF + || n->k == AST_STRUCT_DEF + || n->k == AST_STRUCT_CONT_DEF)) if (n->a2) new->a2 = clone_ast_list(n->a2); -- cgit v1.3