authorgravatar for 4678790+dweiller@users.noreply.github.comDominic <4678790+dweiller@users.noreply.github.com> 2023-02-20 16:58:48+11:00
committergravatar for 4678790+dweiller@users.noreply.github.comDominic <4678790+dweiller@users.noreply.github.com> 2023-02-20 16:58:48+11:00
loga74f800dd79fec48a50152394c9fb3c2d6f080d0
tree4fce01612f7b41b29d22e817ffe9dac9bb70a7f4
parent2766b704c1805f7b3dce25331c209441cdb774fc

std.compress.zstandard: update for multi-for-loop change


4 files changed, 22 insertions(+), 37 deletions(-)

lib/std/compress/zstandard.zig+3-4
......@@ -214,9 +214,8 @@ pub fn ZstandardStream(
214214 }
215215
216216 const size = @min(self.buffer.len(), buffer.len);
217 var count: usize = 0;
218 while (count < size) : (count += 1) {
219 buffer[count] = self.buffer.read().?;
217 for (0..size) |i| {
218 buffer[i] = self.buffer.read().?;
220219 }
221220 if (self.state == .LastBlock and self.buffer.len() == 0) {
222221 self.state = .NewFrame;
......@@ -227,7 +226,7 @@ pub fn ZstandardStream(
227226 self.allocator.free(self.sequence_buffer);
228227 self.buffer.deinit(self.allocator);
229228 }
230 return count;
229 return size;
231230 }
232231 };
233232}
lib/std/compress/zstandard/decode/block.zig+10-20
......@@ -453,8 +453,7 @@ pub const DecodeState = struct {
453453 self.written_count += len;
454454 },
455455 .rle => {
456 var i: usize = 0;
457 while (i < len) : (i += 1) {
456 for (0..len) |i| {
458457 dest[i] = self.literal_streams.one[0];
459458 }
460459 self.literal_written_count += len;
......@@ -471,8 +470,7 @@ pub const DecodeState = struct {
471470 var bits_read: u4 = 0;
472471 var huffman_tree_index: usize = huffman_tree.symbol_count_minus_one;
473472 var bit_count_to_read: u4 = starting_bit_count;
474 var i: usize = 0;
475 while (i < len) : (i += 1) {
473 for (0..len) |i| {
476474 var prefix: u16 = 0;
477475 while (true) {
478476 const new_bits = self.readLiteralsBits(bit_count_to_read) catch |err| {
......@@ -528,8 +526,7 @@ pub const DecodeState = struct {
528526 self.written_count += len;
529527 },
530528 .rle => {
531 var i: usize = 0;
532 while (i < len) : (i += 1) {
529 for (0..len) |_| {
533530 dest.writeAssumeCapacity(self.literal_streams.one[0]);
534531 }
535532 self.literal_written_count += len;
......@@ -546,8 +543,7 @@ pub const DecodeState = struct {
546543 var bits_read: u4 = 0;
547544 var huffman_tree_index: usize = huffman_tree.symbol_count_minus_one;
548545 var bit_count_to_read: u4 = starting_bit_count;
549 var i: usize = 0;
550 while (i < len) : (i += 1) {
546 for (0..len) |_| {
551547 var prefix: u16 = 0;
552548 while (true) {
553549 const new_bits = try self.readLiteralsBits(bit_count_to_read);
......@@ -630,8 +626,7 @@ pub fn decodeBlock(
630626 .rle => {
631627 if (src.len < 1) return error.MalformedRleBlock;
632628 if (dest[written_count..].len < block_size) return error.DestTooSmall;
633 var write_pos: usize = written_count;
634 while (write_pos < block_size + written_count) : (write_pos += 1) {
629 for (written_count..block_size + written_count) |write_pos| {
635630 dest[write_pos] = src[0];
636631 }
637632 consumed_count.* += 1;
......@@ -664,8 +659,7 @@ pub fn decodeBlock(
664659 return error.MalformedCompressedBlock;
665660
666661 var sequence_size_limit = block_size_max;
667 var i: usize = 0;
668 while (i < sequences_header.sequence_count) : (i += 1) {
662 for (0..sequences_header.sequence_count) |i| {
669663 const write_pos = written_count + bytes_written;
670664 const decompressed_size = decode_state.decodeSequenceSlice(
671665 dest,
......@@ -734,8 +728,7 @@ pub fn decodeBlockRingBuffer(
734728 },
735729 .rle => {
736730 if (src.len < 1) return error.MalformedRleBlock;
737 var write_pos: usize = 0;
738 while (write_pos < block_size) : (write_pos += 1) {
731 for (0..block_size) |_| {
739732 dest.writeAssumeCapacity(src[0]);
740733 }
741734 consumed_count.* += 1;
......@@ -768,8 +761,7 @@ pub fn decodeBlockRingBuffer(
768761 return error.MalformedCompressedBlock;
769762
770763 var sequence_size_limit = block_size_max;
771 var i: usize = 0;
772 while (i < sequences_header.sequence_count) : (i += 1) {
764 for (0..sequences_header.sequence_count) |i| {
773765 const decompressed_size = decode_state.decodeSequenceRingBuffer(
774766 dest,
775767 &bit_stream,
......@@ -840,8 +832,7 @@ pub fn decodeBlockReader(
840832 },
841833 .rle => {
842834 const byte = try source.readByte();
843 var i: usize = 0;
844 while (i < block_size) : (i += 1) {
835 for (0..block_size) |_| {
845836 dest.writeAssumeCapacity(byte);
846837 }
847838 decode_state.written_count += block_size;
......@@ -866,8 +857,7 @@ pub fn decodeBlockReader(
866857 return error.MalformedCompressedBlock;
867858
868859 var sequence_size_limit = block_size_max;
869 var i: usize = 0;
870 while (i < sequences_header.sequence_count) : (i += 1) {
860 for (0..sequences_header.sequence_count) |i| {
871861 const decompressed_size = decode_state.decodeSequenceRingBuffer(
872862 dest,
873863 &bit_stream,
lib/std/compress/zstandard/decode/fse.zig+7-10
......@@ -47,8 +47,7 @@ pub fn decodeFseTable(
4747 while (true) {
4848 const repeat_flag = try bit_reader.readBitsNoEof(u2, 2);
4949 if (repeat_flag + value_count > 256) return error.MalformedFseTable;
50 var i: usize = 0;
51 while (i < repeat_flag) : (i += 1) {
50 for (0..repeat_flag) |_| {
5251 values[value_count] = 1;
5352 value_count += 1;
5453 }
......@@ -75,7 +74,7 @@ fn buildFseTable(values: []const u16, entries: []Table.Fse) !void {
7574 assert(total_probability <= 1 << 9);
7675
7776 var less_than_one_count: usize = 0;
78 for (values) |value, i| {
77 for (values, 0..) |value, i| {
7978 if (value == 0) {
8079 entries[entries.len - 1 - less_than_one_count] = Table.Fse{
8180 .symbol = @intCast(u8, i),
......@@ -88,7 +87,7 @@ fn buildFseTable(values: []const u16, entries: []Table.Fse) !void {
8887
8988 var position: usize = 0;
9089 var temp_states: [1 << 9]u16 = undefined;
91 for (values) |value, symbol| {
90 for (values, 0..) |value, symbol| {
9291 if (value == 0 or value == 1) continue;
9392 const probability = value - 1;
9493
......@@ -99,8 +98,7 @@ fn buildFseTable(values: []const u16, entries: []Table.Fse) !void {
9998 const single_state_count = probability - double_state_count;
10099 const share_size_log = std.math.log2_int(u16, share_size);
101100
102 var i: u16 = 0;
103 while (i < probability) : (i += 1) {
101 for (0..probability) |i| {
104102 temp_states[i] = @intCast(u16, position);
105103 position += (entries.len >> 1) + (entries.len >> 3) + 3;
106104 position &= entries.len - 1;
......@@ -110,16 +108,15 @@ fn buildFseTable(values: []const u16, entries: []Table.Fse) !void {
110108 }
111109 }
112110 std.sort.sort(u16, temp_states[0..probability], {}, std.sort.asc(u16));
113 i = 0;
114 while (i < probability) : (i += 1) {
111 for (0..probability) |i| {
115112 entries[temp_states[i]] = if (i < double_state_count) Table.Fse{
116113 .symbol = @intCast(u8, symbol),
117114 .bits = share_size_log + 1,
118 .baseline = single_state_count * share_size + i * 2 * share_size,
115 .baseline = single_state_count * share_size + @intCast(u16, i) * 2 * share_size,
119116 } else Table.Fse{
120117 .symbol = @intCast(u8, symbol),
121118 .bits = share_size_log,
122 .baseline = (i - double_state_count) * share_size,
119 .baseline = (@intCast(u16, i) - double_state_count) * share_size,
123120 };
124121 }
125122 }
lib/std/compress/zstandard/decode/huffman.zig+2-3
......@@ -95,8 +95,7 @@ fn assignWeights(huff_bits: *readers.ReverseBitReader, accuracy_log: usize, entr
9595
9696fn decodeDirectHuffmanTree(source: anytype, encoded_symbol_count: usize, weights: *[256]u4) !usize {
9797 const weights_byte_count = (encoded_symbol_count + 1) / 2;
98 var i: usize = 0;
99 while (i < weights_byte_count) : (i += 1) {
98 for (0..weights_byte_count) |i| {
10099 const byte = try source.readByte();
101100 weights[2 * i] = @intCast(u4, byte >> 4);
102101 weights[2 * i + 1] = @intCast(u4, byte & 0xF);
......@@ -105,7 +104,7 @@ fn decodeDirectHuffmanTree(source: anytype, encoded_symbol_count: usize, weights
105104}
106105
107106fn assignSymbols(weight_sorted_prefixed_symbols: []LiteralsSection.HuffmanTree.PrefixedSymbol, weights: [256]u4) usize {
108 for (weight_sorted_prefixed_symbols) |_, i| {
107 for (0..weight_sorted_prefixed_symbols.len) |i| {
109108 weight_sorted_prefixed_symbols[i] = .{
110109 .symbol = @intCast(u8, i),
111110 .weight = undefined,