[to #46737517] fix null complex argument core

This commit is contained in:
obdev
2022-12-20 07:41:37 +00:00
committed by ob-robot
parent 8ffb94cd93
commit 47adcea9b8
2 changed files with 23 additions and 19 deletions

View File

@ -4199,7 +4199,7 @@ int ObPLCodeGenerator::generate_get_collection_attr(ObLLVMValue &param_array,
element_idx,
current_value));
if (OB_SUCC(ret) && !for_write) {
if (OB_SUCC(ret)) {
// check deleted value
ObLLVMValue p_type_value;
ObLLVMValue type_value;
@ -4211,9 +4211,19 @@ int ObPLCodeGenerator::generate_get_collection_attr(ObLLVMValue &param_array,
OZ (helper_.create_icmp_eq(type_value, ObMaxType, is_deleted));
OZ (helper_.create_cond_br(is_deleted, delete_block, after_delete_block));
OZ (helper_.set_insert_point(delete_block));
OZ (helper_.get_int32(OB_READ_NOTHING, ret_value));
OZ (helper_.create_store(ret_value, ret_value_ptr));
OZ (helper_.create_br(exit));
if (!for_write) {
OZ (helper_.get_int32(OB_READ_NOTHING, ret_value));
OZ (helper_.create_store(ret_value, ret_value_ptr));
OZ (helper_.create_br(exit));
} else {
if (current_access.var_type_.is_composite_type()) {
OZ (helper_.get_int8(ObExtendType, type_value));
} else {
OZ (helper_.get_int8(current_access.var_type_.get_obj_type(), type_value));
}
OZ (helper_.create_store(type_value, p_type_value));
OZ (helper_.create_br(after_delete_block));
}
OZ (helper_.set_insert_point(after_delete_block));
}
} else {