fix the error code of alloc mem failed
This commit is contained in:
@ -712,7 +712,10 @@ int ObTempExpr::deep_copy(ObIAllocator &allocator, ObTempExpr *&dst) const
|
|||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
char *buf = static_cast<char *>(allocator.alloc(sizeof(ObTempExpr)));
|
char *buf = static_cast<char *>(allocator.alloc(sizeof(ObTempExpr)));
|
||||||
CK(OB_NOT_NULL(buf));
|
if (OB_ISNULL(buf)) {
|
||||||
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
|
LOG_WARN("fail to alloc mem in temp expr deep copy", K(ret));
|
||||||
|
}
|
||||||
OX(dst = new(buf)ObTempExpr(allocator));
|
OX(dst = new(buf)ObTempExpr(allocator));
|
||||||
OZ(dst->assign(*this, allocator));
|
OZ(dst->assign(*this, allocator));
|
||||||
OX(dst->expr_idx_ = expr_idx_);
|
OX(dst->expr_idx_ = expr_idx_);
|
||||||
|
|||||||
@ -343,7 +343,10 @@ int ObExecContext::build_temp_expr_ctx(const ObTempExpr &temp_expr, ObTempExprCt
|
|||||||
char **frames = NULL;
|
char **frames = NULL;
|
||||||
char *mem = static_cast<char*>(get_allocator().alloc(sizeof(ObTempExprCtx)));
|
char *mem = static_cast<char*>(get_allocator().alloc(sizeof(ObTempExprCtx)));
|
||||||
ObArray<char *> tmp_param_frame_ptrs;
|
ObArray<char *> tmp_param_frame_ptrs;
|
||||||
CK(OB_NOT_NULL(mem));
|
if (OB_ISNULL(mem)) {
|
||||||
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
|
LOG_WARN("no more memory to create temp expr ctx", K(ret));
|
||||||
|
}
|
||||||
OX(temp_expr_ctx = new(mem)ObTempExprCtx(*this));
|
OX(temp_expr_ctx = new(mem)ObTempExprCtx(*this));
|
||||||
OZ(temp_expr.alloc_frame(get_allocator(), tmp_param_frame_ptrs, frame_cnt, frames));
|
OZ(temp_expr.alloc_frame(get_allocator(), tmp_param_frame_ptrs, frame_cnt, frames));
|
||||||
OX(temp_expr_ctx->frames_ = frames);
|
OX(temp_expr_ctx->frames_ = frames);
|
||||||
|
|||||||
Reference in New Issue
Block a user