This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch dev-1.0.1 in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
commit 820d1c736b64f63187233906646de5e653b14c7e Author: dataroaring <[email protected]> AuthorDate: Thu Mar 31 13:50:25 2022 +0800 [ubsan] fix some ubsan complains on vector and pointer (#8733) --- be/src/exprs/expr_context.cpp | 6 +----- be/src/exprs/expr_context.h | 5 ----- be/src/runtime/mem_pool.cpp | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/be/src/exprs/expr_context.cpp b/be/src/exprs/expr_context.cpp index 40e93ee..36f15b3 100644 --- a/be/src/exprs/expr_context.cpp +++ b/be/src/exprs/expr_context.cpp @@ -35,8 +35,7 @@ namespace doris { ExprContext::ExprContext(Expr* root) - : _fn_contexts_ptr(nullptr), - _root(root), + : _root(root), _is_clone(false), _prepared(false), _opened(false), @@ -104,7 +103,6 @@ int ExprContext::register_func(RuntimeState* state, int varargs_buffer_size) { _fn_contexts.push_back(FunctionContextImpl::create_context( state, _pool.get(), return_type, arg_types, varargs_buffer_size, false)); - _fn_contexts_ptr = &_fn_contexts[0]; return _fn_contexts.size() - 1; } @@ -118,7 +116,6 @@ Status ExprContext::clone(RuntimeState* state, ExprContext** new_ctx) { for (int i = 0; i < _fn_contexts.size(); ++i) { (*new_ctx)->_fn_contexts.push_back(_fn_contexts[i]->impl()->clone((*new_ctx)->_pool.get())); } - (*new_ctx)->_fn_contexts_ptr = &((*new_ctx)->_fn_contexts[0]); (*new_ctx)->_is_clone = true; (*new_ctx)->_prepared = true; @@ -137,7 +134,6 @@ Status ExprContext::clone(RuntimeState* state, ExprContext** new_ctx, Expr* root for (int i = 0; i < _fn_contexts.size(); ++i) { (*new_ctx)->_fn_contexts.push_back(_fn_contexts[i]->impl()->clone((*new_ctx)->_pool.get())); } - (*new_ctx)->_fn_contexts_ptr = &((*new_ctx)->_fn_contexts[0]); (*new_ctx)->_is_clone = true; (*new_ctx)->_prepared = true; diff --git a/be/src/exprs/expr_context.h b/be/src/exprs/expr_context.h index f176240..cced55d 100644 --- a/be/src/exprs/expr_context.h +++ b/be/src/exprs/expr_context.h @@ -165,11 +165,6 @@ private: /// and owned by this ExprContext. std::vector<FunctionContext*> _fn_contexts; - /// Array access to fn_contexts_. Used by ScalarFnCall's codegen'd compute function - /// to access the correct FunctionContext. - /// TODO: revisit this - FunctionContext** _fn_contexts_ptr; - /// Pool backing fn_contexts_. Counts against the runtime state's UDF mem tracker. std::unique_ptr<MemPool> _pool; diff --git a/be/src/runtime/mem_pool.cpp b/be/src/runtime/mem_pool.cpp index bcaaa27..212b88e 100644 --- a/be/src/runtime/mem_pool.cpp +++ b/be/src/runtime/mem_pool.cpp @@ -178,7 +178,7 @@ void MemPool::acquire_data(MemPool* src, bool keep_current) { } // insert new chunks after current_chunk_idx_ - auto insert_chunk = chunks_.begin() + current_chunk_idx_ + 1; + auto insert_chunk = chunks_.begin() + (current_chunk_idx_ + 1); chunks_.insert(insert_chunk, src->chunks_.begin(), end_chunk); src->chunks_.erase(src->chunks_.begin(), end_chunk); current_chunk_idx_ += num_acquired_chunks; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
