[to #46737517] fix null complex argument core
This commit is contained in:
		| @ -4199,7 +4199,7 @@ int ObPLCodeGenerator::generate_get_collection_attr(ObLLVMValue ¶m_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 ¶m_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 { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev