refactor(incompressible_categorizer): use internal::malloc_buffer

This commit is contained in:
Marcus Holland-Moritz 2025-04-09 14:15:05 +02:00
parent 76106509d3
commit 19ff269602

View File

@ -25,7 +25,6 @@
#include <cassert>
#include <cstring>
#include <numeric>
#include <vector>
#include <boost/program_options.hpp>
@ -39,6 +38,8 @@
#include <dwarfs/writer/categorizer.h>
#include <dwarfs/zstd_context_manager.h>
#include <dwarfs/internal/malloc_buffer.h>
namespace dwarfs::writer {
namespace po = boost::program_options;
@ -125,10 +126,8 @@ class incompressible_categorizer_job_ : public sequential_categorizer_job {
private:
void add_input(std::span<uint8_t const> data) {
auto current_size = input_.size();
assert(current_size + data.size() <= cfg_.block_size);
input_.resize(current_size + data.size());
::memcpy(&input_[current_size], data.data(), data.size());
assert(input_.size() + data.size() <= cfg_.block_size);
input_.append(data.data(), data.size());
if (input_.size() == cfg_.block_size) {
compress();
}
@ -187,8 +186,8 @@ class incompressible_categorizer_job_ : public sequential_categorizer_job {
}
LOG_PROXY_DECL(LoggerPolicy);
std::vector<uint8_t> input_;
std::vector<uint8_t> output_;
dwarfs::internal::malloc_buffer input_;
dwarfs::internal::malloc_buffer output_;
size_t total_input_size_{0};
size_t total_output_size_{0};
size_t total_blocks_{0};