From 0771e8aa7d51994fa83a59d541b4df664ac94662 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Tue, 16 Jan 2024 14:53:34 +0100 Subject: [PATCH] refactor: get rid of null_block_decompressor --- src/dwarfs/compression/null.cpp | 53 ++------------------------------- 1 file changed, 3 insertions(+), 50 deletions(-) diff --git a/src/dwarfs/compression/null.cpp b/src/dwarfs/compression/null.cpp index d9bed9b7..8025c574 100644 --- a/src/dwarfs/compression/null.cpp +++ b/src/dwarfs/compression/null.cpp @@ -61,52 +61,6 @@ class null_block_compressor final : public block_compressor::impl { } }; -class null_block_decompressor final : public block_decompressor::impl { - public: - null_block_decompressor(const uint8_t* data, size_t size, - std::vector& target) - : decompressed_(target) - , data_(data) - , uncompressed_size_(size) { - // TODO: we shouldn't have to copy this to memory at all... - try { - decompressed_.reserve(uncompressed_size_); - } catch (std::bad_alloc const&) { - DWARFS_THROW( - runtime_error, - fmt::format("could not reserve {} bytes for decompressed block", - uncompressed_size_)); - } - } - - compression_type type() const override { return compression_type::NONE; } - - std::optional metadata() const override { return std::nullopt; } - - bool decompress_frame(size_t frame_size) override { - if (decompressed_.size() + frame_size > uncompressed_size_) { - frame_size = uncompressed_size_ - decompressed_.size(); - } - - assert(frame_size > 0); - - size_t offset = decompressed_.size(); - decompressed_.resize(offset + frame_size); - - std::copy(data_ + offset, data_ + offset + frame_size, - &decompressed_[offset]); - - return decompressed_.size() == uncompressed_size_; - } - - size_t uncompressed_size() const override { return uncompressed_size_; } - - private: - std::vector& decompressed_; - const uint8_t* const data_; - const size_t uncompressed_size_; -}; - class null_compression_factory : public compression_factory { public: std::string_view name() const override { return "null"; } @@ -123,10 +77,9 @@ class null_compression_factory : public compression_factory { } std::unique_ptr - make_decompressor(std::span data, - std::vector& target) const override { - return std::make_unique(data.data(), data.size(), - target); + make_decompressor(std::span, + std::vector&) const override { + DWARFS_THROW(runtime_error, "null_decompressor not implemented"); } private: