From a8eb70c9d70e2cdff032fdf80b304d70b002b120 Mon Sep 17 00:00:00 2001 From: joadnacer Date: Sat, 21 Oct 2023 19:20:12 +0100 Subject: [PATCH] compress: Improve RingBuffer usage --- lib/std/compress/zstandard.zig | 4 +--- lib/std/compress/zstandard/decode/block.zig | 8 +++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/std/compress/zstandard.zig b/lib/std/compress/zstandard.zig index 1e8a0fc86f..9603fb32f9 100644 --- a/lib/std/compress/zstandard.zig +++ b/lib/std/compress/zstandard.zig @@ -219,9 +219,7 @@ pub fn DecompressStream( } const size = @min(self.buffer.len(), buffer.len); - for (0..size) |i| { - buffer[i] = self.buffer.read().?; - } + self.buffer.readFirstAssumeLength(buffer, size); if (self.state == .LastBlock and self.buffer.len() == 0) { self.state = .NewFrame; self.allocator.free(self.literal_fse_buffer); diff --git a/lib/std/compress/zstandard/decode/block.zig b/lib/std/compress/zstandard/decode/block.zig index bbf8492f04..4a035fb543 100644 --- a/lib/std/compress/zstandard/decode/block.zig +++ b/lib/std/compress/zstandard/decode/block.zig @@ -311,8 +311,8 @@ pub const DecodeState = struct { try self.decodeLiteralsRingBuffer(dest, sequence.literal_length); const copy_start = dest.write_index + dest.data.len - sequence.offset; const copy_slice = dest.sliceAt(copy_start, sequence.match_length); - for (copy_slice.first) |b| dest.writeAssumeCapacity(b); - for (copy_slice.second) |b| dest.writeAssumeCapacity(b); + dest.writeSliceForwardsAssumeCapacity(copy_slice.first); + dest.writeSliceForwardsAssumeCapacity(copy_slice.second); self.written_count += sequence.match_length; } @@ -723,9 +723,7 @@ pub fn decodeBlockRingBuffer( }, .rle => { if (src.len < 1) return error.MalformedRleBlock; - for (0..block_size) |_| { - dest.writeAssumeCapacity(src[0]); - } + dest.writeSliceAssumeCapacity(src[0..block_size]); consumed_count.* += 1; decode_state.written_count += block_size; return block_size;