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
|
struct code_generator_state *state
|
||||||
= get_current_generator_state(gen);
|
= get_current_generator_state(gen);
|
||||||
|
|
||||||
if (!state || !state->s_gen->g_value_received) {
|
if (!state) {
|
||||||
return IVY_OK;
|
return IVY_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct code_generator_result result
|
struct code_generator_result result = {
|
||||||
= state->s_gen->g_value_received(gen, state, value);
|
.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)
|
bool should_pop = ((result.r_flags & CODEGEN_R_POP_GENERATOR) != 0)
|
||||||
|| node_depth <= state->s_depth;
|
|| node_depth <= state->s_depth;
|
||||||
|
|||||||
Reference in New Issue
Block a user