small refine

This commit is contained in:
Ihor Andrianov
2025-03-28 01:06:09 +02:00
parent 36fe859d7d
commit 4fd1dcdc73

View File

@@ -678,14 +678,18 @@ fn emit_loop_source(
)?;
}
let if_label = program.allocate_label();
if let Some(flag) = t_ctx.reg_agg_flag {
let if_label = if let Some(flag) = t_ctx.reg_agg_flag {
let if_label = program.allocate_label();
program.emit_insn(Insn::If {
reg: flag,
target_pc: if_label,
jump_if_null: false,
});
}
Some(if_label)
} else {
None
};
let col_start = t_ctx.reg_result_cols_start.unwrap();
for (i, rc) in plan.result_columns.iter().enumerate() {
@@ -706,10 +710,12 @@ fn emit_loop_source(
&t_ctx.resolver,
)?;
}
program.resolve_label(if_label, program.offset());
if let Some(flag) = t_ctx.reg_agg_flag {
if let Some(label) = if_label {
program.resolve_label(label, program.offset());
let flag = t_ctx.reg_agg_flag.unwrap();
program.emit_int(1, flag);
}
Ok(())
}
LoopEmitTarget::QueryResult => {