github-actions[bot] commented on code in PR #33622: URL: https://github.com/apache/doris/pull/33622#discussion_r1571178049
########## be/src/util/block_compression.cpp: ########## @@ -169,40 +172,34 @@ class Lz4BlockCompression : public BlockCompressionCodec { private: // reuse LZ4 compress stream - Status _acquire_compression_ctx(Context** out) { + Status _acquire_compression_ctx(std::unique_ptr<Context>& out) { std::lock_guard<std::mutex> l(_ctx_mutex); if (_ctx_pool.empty()) { - Context* context = new (std::nothrow) Context(); - if (context == nullptr) { + std::unique_ptr<Context> localCtx = Context::create_unique(); + if (localCtx.get() == nullptr) { return Status::InvalidArgument("new LZ4 context error"); } - context->ctx = LZ4_createStream(); - if (context->ctx == nullptr) { - delete context; + localCtx->ctx = LZ4_createStream(); + if (localCtx->ctx == nullptr) { return Status::InvalidArgument("LZ4_createStream error"); } - *out = context; + out = std::move(localCtx); return Status::OK(); } - *out = _ctx_pool.back(); + out = std::move(_ctx_pool.back()); _ctx_pool.pop_back(); return Status::OK(); } - void _release_compression_ctx(Context* context) { + void _release_compression_ctx(std::unique_ptr<Context> context) { Review Comment: warning: method '_release_compression_ctx' can be made static [readability-convert-member-functions-to-static] ```suggestion static void _release_compression_ctx(std::unique_ptr<Context> context) { ``` ########## be/src/util/block_compression.cpp: ########## @@ -894,77 +893,66 @@ } private: - Status _acquire_compression_ctx(CContext** out) { + Status _acquire_compression_ctx(std::unique_ptr<CContext>& out) { std::lock_guard<std::mutex> l(_ctx_c_mutex); if (_ctx_c_pool.empty()) { - CContext* context = new (std::nothrow) CContext(); - if (context == nullptr) { + std::unique_ptr<CContext> localCtx = CContext::create_unique(); + if (localCtx.get() == nullptr) { return Status::InvalidArgument("failed to new ZSTD CContext"); } //typedef LZ4F_cctx* LZ4F_compressionContext_t; - context->ctx = ZSTD_createCCtx(); - if (context->ctx == nullptr) { + localCtx->ctx = ZSTD_createCCtx(); + if (localCtx->ctx == nullptr) { return Status::InvalidArgument("Failed to create ZSTD compress ctx"); } - *out = context; + out = std::move(localCtx); return Status::OK(); } - *out = _ctx_c_pool.back(); + out = std::move(_ctx_c_pool.back()); _ctx_c_pool.pop_back(); return Status::OK(); } - void _release_compression_ctx(CContext* context) { + void _release_compression_ctx(std::unique_ptr<CContext> context) { Review Comment: warning: method '_release_compression_ctx' can be made static [readability-convert-member-functions-to-static] ```suggestion static void _release_compression_ctx(std::unique_ptr<CContext> context) { ``` ########## be/src/util/block_compression.cpp: ########## @@ -894,77 +893,66 @@ } private: - Status _acquire_compression_ctx(CContext** out) { + Status _acquire_compression_ctx(std::unique_ptr<CContext>& out) { std::lock_guard<std::mutex> l(_ctx_c_mutex); if (_ctx_c_pool.empty()) { - CContext* context = new (std::nothrow) CContext(); - if (context == nullptr) { + std::unique_ptr<CContext> localCtx = CContext::create_unique(); + if (localCtx.get() == nullptr) { return Status::InvalidArgument("failed to new ZSTD CContext"); } //typedef LZ4F_cctx* LZ4F_compressionContext_t; - context->ctx = ZSTD_createCCtx(); - if (context->ctx == nullptr) { + localCtx->ctx = ZSTD_createCCtx(); + if (localCtx->ctx == nullptr) { return Status::InvalidArgument("Failed to create ZSTD compress ctx"); } - *out = context; + out = std::move(localCtx); return Status::OK(); } - *out = _ctx_c_pool.back(); + out = std::move(_ctx_c_pool.back()); _ctx_c_pool.pop_back(); return Status::OK(); } - void _release_compression_ctx(CContext* context) { + void _release_compression_ctx(std::unique_ptr<CContext> context) { DCHECK(context); auto ret = ZSTD_CCtx_reset(context->ctx, ZSTD_reset_session_only); DCHECK(!ZSTD_isError(ret)); std::lock_guard<std::mutex> l(_ctx_c_mutex); - _ctx_c_pool.push_back(context); - } - void _delete_compression_ctx(CContext* context) { - DCHECK(context); - ZSTD_freeCCtx(context->ctx); - delete context; + _ctx_c_pool.push_back(std::move(context)); } - Status _acquire_decompression_ctx(DContext** out) { + Status _acquire_decompression_ctx(std::unique_ptr<DContext>& out) { std::lock_guard<std::mutex> l(_ctx_d_mutex); if (_ctx_d_pool.empty()) { - DContext* context = new (std::nothrow) DContext(); - if (context == nullptr) { + std::unique_ptr<DContext> localCtx = DContext::create_unique(); + if (localCtx.get() == nullptr) { return Status::InvalidArgument("failed to new ZSTD DContext"); } - context->ctx = ZSTD_createDCtx(); - if (context->ctx == nullptr) { + localCtx->ctx = ZSTD_createDCtx(); + if (localCtx->ctx == nullptr) { return Status::InvalidArgument("Fail to init ZSTD decompress context"); } - *out = context; + out = std::move(localCtx); return Status::OK(); } - *out = _ctx_d_pool.back(); + out = std::move(_ctx_d_pool.back()); _ctx_d_pool.pop_back(); return Status::OK(); } - void _release_decompression_ctx(DContext* context) { + void _release_decompression_ctx(std::unique_ptr<DContext> context) { Review Comment: warning: method '_release_decompression_ctx' can be made static [readability-convert-member-functions-to-static] ```suggestion static void _release_decompression_ctx(std::unique_ptr<DContext> context) { ``` ########## be/src/util/block_compression.cpp: ########## @@ -374,77 +379,67 @@ private: // acquire a compression ctx from pool, release while finish compress, // delete if compression failed - Status _acquire_compression_ctx(CContext** out) { + Status _acquire_compression_ctx(std::unique_ptr<CContext>& out) { std::lock_guard<std::mutex> l(_ctx_c_mutex); if (_ctx_c_pool.empty()) { - CContext* context = new (std::nothrow) CContext(); - if (context == nullptr) { + std::unique_ptr<CContext> localCtx = CContext::create_unique(); + if (localCtx.get() == nullptr) { return Status::InvalidArgument("failed to new LZ4F CContext"); } - auto res = LZ4F_createCompressionContext(&context->ctx, LZ4F_VERSION); + auto res = LZ4F_createCompressionContext(&localCtx->ctx, LZ4F_VERSION); if (LZ4F_isError(res) != 0) { return Status::InvalidArgument(strings::Substitute( "LZ4F_createCompressionContext error, res=$0", LZ4F_getErrorName(res))); } - *out = context; + out = std::move(localCtx); return Status::OK(); } - *out = _ctx_c_pool.back(); + out = std::move(_ctx_c_pool.back()); _ctx_c_pool.pop_back(); return Status::OK(); } - void _release_compression_ctx(CContext* context) { + void _release_compression_ctx(std::unique_ptr<CContext> context) { Review Comment: warning: method '_release_compression_ctx' can be made static [readability-convert-member-functions-to-static] ```suggestion static void _release_compression_ctx(std::unique_ptr<CContext> context) { ``` ########## be/src/util/block_compression.cpp: ########## @@ -374,77 +379,67 @@ private: // acquire a compression ctx from pool, release while finish compress, // delete if compression failed - Status _acquire_compression_ctx(CContext** out) { + Status _acquire_compression_ctx(std::unique_ptr<CContext>& out) { std::lock_guard<std::mutex> l(_ctx_c_mutex); if (_ctx_c_pool.empty()) { - CContext* context = new (std::nothrow) CContext(); - if (context == nullptr) { + std::unique_ptr<CContext> localCtx = CContext::create_unique(); + if (localCtx.get() == nullptr) { return Status::InvalidArgument("failed to new LZ4F CContext"); } - auto res = LZ4F_createCompressionContext(&context->ctx, LZ4F_VERSION); + auto res = LZ4F_createCompressionContext(&localCtx->ctx, LZ4F_VERSION); if (LZ4F_isError(res) != 0) { return Status::InvalidArgument(strings::Substitute( "LZ4F_createCompressionContext error, res=$0", LZ4F_getErrorName(res))); } - *out = context; + out = std::move(localCtx); return Status::OK(); } - *out = _ctx_c_pool.back(); + out = std::move(_ctx_c_pool.back()); _ctx_c_pool.pop_back(); return Status::OK(); } - void _release_compression_ctx(CContext* context) { + void _release_compression_ctx(std::unique_ptr<CContext> context) { DCHECK(context); std::lock_guard<std::mutex> l(_ctx_c_mutex); - _ctx_c_pool.push_back(context); - } - void _delete_compression_ctx(CContext* context) { - DCHECK(context); - LZ4F_freeCompressionContext(context->ctx); - delete context; + _ctx_c_pool.push_back(std::move(context)); } - Status _acquire_decompression_ctx(DContext** out) { + Status _acquire_decompression_ctx(std::unique_ptr<DContext>& out) { std::lock_guard<std::mutex> l(_ctx_d_mutex); if (_ctx_d_pool.empty()) { - DContext* context = new (std::nothrow) DContext(); - if (context == nullptr) { + std::unique_ptr<DContext> localCtx = DContext::create_unique(); + if (localCtx.get() == nullptr) { return Status::InvalidArgument("failed to new LZ4F DContext"); } - auto res = LZ4F_createDecompressionContext(&context->ctx, LZ4F_VERSION); + auto res = LZ4F_createDecompressionContext(&localCtx->ctx, LZ4F_VERSION); if (LZ4F_isError(res) != 0) { return Status::InvalidArgument(strings::Substitute( "LZ4F_createDeompressionContext error, res=$0", LZ4F_getErrorName(res))); } - *out = context; + out = std::move(localCtx); return Status::OK(); } - *out = _ctx_d_pool.back(); + out = std::move(_ctx_d_pool.back()); _ctx_d_pool.pop_back(); return Status::OK(); } - void _release_decompression_ctx(DContext* context) { + void _release_decompression_ctx(std::unique_ptr<DContext> context) { Review Comment: warning: method '_release_decompression_ctx' can be made static [readability-convert-member-functions-to-static] ```suggestion static void _release_decompression_ctx(std::unique_ptr<DContext> context) { ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org