[CP] [to #2024091200104456949] fix: adjust stack_save/stack_restore position

This commit is contained in:
0xacc
2024-09-20 07:18:19 +00:00
committed by ob-robot
parent 9929e8cc82
commit 317980345f

View File

@ -224,8 +224,6 @@ int ObPLCodeGenerateVisitor::visit(const ObPLDeclareVarStmt &s)
ObLLVMType ir_type;
ObLLVMValue value;
bool is_complex_type_var = false;
ObLLVMValue stack;
OZ (generator_.get_helper().stack_save(stack));
for (int64_t i = 0; OB_SUCC(ret) && i < s.get_index().count(); ++i) {
const ObPLVar *var = s.get_var(i);
CK (OB_NOT_NULL(var));
@ -303,6 +301,8 @@ int ObPLCodeGenerateVisitor::visit(const ObPLDeclareVarStmt &s)
&& OB_INVALID_INDEX != s.get_default()
&& PL_CONSTRUCT_COLLECTION != s.get_default()) {
ObLLVMValue p_result_obj;
ObLLVMValue stack;
OZ (generator_.get_helper().stack_save(stack));
OZ (generator_.generate_expr(s.get_default(),
s,
is_complex_type_var ? OB_INVALID_ID : s.get_index(0),
@ -379,6 +379,7 @@ int ObPLCodeGenerateVisitor::visit(const ObPLDeclareVarStmt &s)
}
}
}
OZ (generator_.get_helper().stack_restore(stack));
}
if (lib::is_mysql_mode()) {
ObLLVMValue ret_err;
@ -394,7 +395,6 @@ int ObPLCodeGenerateVisitor::visit(const ObPLDeclareVarStmt &s)
}
OZ (generator_.generate_spi_pl_profiler_after_record(s));
OZ (generator_.get_helper().stack_restore(stack));
}
return ret;
}