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/actualize.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/actualize.c') diff --git a/src/actualize.c b/src/actualize.c index 991beed..5aee29b 100644 --- a/src/actualize.c +++ b/src/actualize.c @@ -1292,12 +1292,16 @@ static int actualize_block(struct act_state *state, if (state->defer_stack == defers) return 0; - block_defers(node) = clone_defers(state, defers); - if (!block_defers(node)) { + struct ast *d = clone_defers(state, defers); + if (!d) { internal_error("failed cloning defers"); clear_defers(state, defers); return -1; } + + block_defers(node) = d; + if (actualize_list(state, d->scope, d)) + return -1; } clear_defers(state, defers); -- cgit v1.3