Fix some checked returns found by white scan
This commit is contained in:
36
deps/oblib/src/lib/number/ob_number_v2.cpp
vendored
36
deps/oblib/src/lib/number/ob_number_v2.cpp
vendored
@ -1387,50 +1387,52 @@ int ObNumber::width_bucket(
|
||||
ObDataBuffer allocator2(buf_alloc2, ObNumber::MAX_BYTE_LEN);
|
||||
ObDataBuffer allocator3(buf_alloc3, ObNumber::MAX_BYTE_LEN);
|
||||
if (OB_FAIL(bucket_num.from(bucket, allocator_bucket))) {
|
||||
LOG_WARN("copy bucket number failed", K(*this), K(bucket_num), K(ret));
|
||||
LOG_WARN("copy bucket number failed", K(bucket_num), K(ret));
|
||||
} else if (OB_FAIL(bucket_num.floor(0))) {
|
||||
LOG_WARN("bucket floor failed", K(*this), K(bucket_num), K(ret));
|
||||
LOG_WARN("bucket floor failed", K(bucket_num), K(ret));
|
||||
} else if (OB_UNLIKELY(bucket_num.is_zero() || bucket_num.is_negative())) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("bucket < 1", K(*this), K(bucket_num), K(ret));
|
||||
LOG_WARN("bucket < 1", K(bucket_num), K(ret));
|
||||
} else {
|
||||
ObNumber range, offset;
|
||||
if (start == end) {
|
||||
if (*this < start) {
|
||||
res.from(static_cast<int64_t>(0), allocator_res);
|
||||
if (OB_FAIL(res.from(static_cast<int64_t>(0), allocator_res))) {
|
||||
LOG_WARN("create number 0 failed", K(res), K(ret));
|
||||
}
|
||||
} else {
|
||||
ObNumber temp;
|
||||
if (OB_FAIL(temp.from(static_cast<int64_t>(1), allocator1))) {
|
||||
LOG_WARN("create number 1 failed", K(*this), K(bucket_num), K(res), K(temp), K(ret));
|
||||
LOG_WARN("create number 1 failed", K(res), K(temp), K(ret));
|
||||
} else if (OB_FAIL(bucket_num.add(temp, res, allocator_res))) {
|
||||
LOG_WARN("bucket add 1 failed", K(*this), K(bucket_num), K(res), K(ret));
|
||||
LOG_WARN("bucket add 1 failed", K(bucket_num), K(res), K(ret));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (start > end) {
|
||||
if (OB_FAIL(start.sub(end, range, allocator1))) {
|
||||
LOG_WARN("start sub end failed", K(*this), K(start), K(end), K(range), K(ret));
|
||||
LOG_WARN("start sub end failed", K(start), K(end), K(range), K(ret));
|
||||
} else if (OB_FAIL(start.sub(*this, offset, allocator2))) {
|
||||
LOG_WARN("start sub target failed", K(*this), K(start), K(offset), K(ret));
|
||||
LOG_WARN("start sub target failed", K(start), K(offset), K(ret));
|
||||
}
|
||||
} else {
|
||||
if (OB_FAIL(end.sub(start, range, allocator1))) {
|
||||
LOG_WARN("end sub start failed", K(*this), K(start), K(end), K(range), K(ret));
|
||||
LOG_WARN("end sub start failed", K(start), K(end), K(range), K(ret));
|
||||
} else if (OB_FAIL(sub(start, offset, allocator2))) {
|
||||
LOG_WARN("end sub target failed", K(*this), K(start), K(offset), K(ret));
|
||||
LOG_WARN("end sub target failed", K(start), K(offset), K(ret));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
if (offset.is_negative()) {
|
||||
if (OB_FAIL(res.from(static_cast<int64_t>(0), allocator_res))) {
|
||||
LOG_WARN("assign 0 to res failed", K(*this), K(res), K(ret));
|
||||
LOG_WARN("assign 0 to res failed", K(res), K(ret));
|
||||
}
|
||||
} else if (offset >= range) {
|
||||
ObNumber temp;
|
||||
if (OB_FAIL(temp.from(static_cast<int64_t>(1), allocator3))) {
|
||||
LOG_WARN("create number 1 failed", K(*this), K(temp), K(ret));
|
||||
LOG_WARN("create number 1 failed", K(temp), K(ret));
|
||||
} else if (OB_FAIL(bucket_num.add(temp, res, allocator_res))) {
|
||||
LOG_WARN("bucket add 1 failed", K(*this), K(bucket_num), K(temp), K(res), K(ret));
|
||||
LOG_WARN("bucket add 1 failed", K(bucket_num), K(temp), K(res), K(ret));
|
||||
}
|
||||
} else {
|
||||
ObNumber q;
|
||||
@ -1446,16 +1448,18 @@ int ObNumber::width_bucket(
|
||||
allocator2.free();
|
||||
std::swap(allocator2, allocator_res);
|
||||
if (OB_FAIL(temp.from(static_cast<int64_t>(1), allocator1))) {
|
||||
LOG_WARN("create number 1 failed", K(*this), K(temp), K(ret));
|
||||
LOG_WARN("create number 1 failed", K(temp), K(ret));
|
||||
} else if (OB_FAIL(res.add(temp, res, allocator_res))) {
|
||||
LOG_WARN("value add 1 failed", K(*this), K(res), K(temp), K(ret));
|
||||
LOG_WARN("value add 1 failed", K(res), K(temp), K(ret));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
value.from(res, allocator);
|
||||
if (OB_FAIL(value.from(res, allocator))) {
|
||||
LOG_WARN("copy res failed", K(value), K(res), K(ret));
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user