lang: codegen: fix pop_generator_recurse only popping generators with a value_received callback defined

This commit is contained in:
2025-04-23 11:01:12 +01:00
parent 2eb358457c
commit 2062ee631c

View File

@@ -315,12 +315,17 @@ static enum ivy_status pop_generator_recurse(
struct code_generator_state *state
= get_current_generator_state(gen);
if (!state || !state->s_gen->g_value_received) {
if (!state) {
return IVY_OK;
}
struct code_generator_result result
= state->s_gen->g_value_received(gen, state, value);
struct code_generator_result result = {
.r_status = IVY_OK,
};
if (state->s_gen->g_value_received) {
state->s_gen->g_value_received(gen, state, value);
}
bool should_pop = ((result.r_flags & CODEGEN_R_POP_GENERATOR) != 0)
|| node_depth <= state->s_depth;