lang: codegen: fix pop_generator_recurse only popping generators with a value_received callback defined
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user