| ... | @@ -153,9 +153,7 @@ fn assignSymbols(weight_sorted_prefixed_symbols: []LiteralsSection.HuffmanTree.P | ... | @@ -153,9 +153,7 @@ fn assignSymbols(weight_sorted_prefixed_symbols: []LiteralsSection.HuffmanTree.P |
| 153 | fn buildHuffmanTree(weights: *[256]u4, symbol_count: usize) error{MalformedHuffmanTree}!LiteralsSection.HuffmanTree { | 153 | fn buildHuffmanTree(weights: *[256]u4, symbol_count: usize) error{MalformedHuffmanTree}!LiteralsSection.HuffmanTree { |
| 154 | var weight_power_sum_big: u32 = 0; | 154 | var weight_power_sum_big: u32 = 0; |
| 155 | for (weights[0 .. symbol_count - 1]) |value| { | 155 | for (weights[0 .. symbol_count - 1]) |value| { |
| 156 | if (value > 0) { | 156 | weight_power_sum_big += (@as(u16, 1) << value) >> 1; |
| 157 | weight_power_sum_big += @as(u16, 1) << (value - 1); | | |
| 158 | } | | |
| 159 | } | 157 | } |
| 160 | if (weight_power_sum_big >= 1 << 11) return error.MalformedHuffmanTree; | 158 | if (weight_power_sum_big >= 1 << 11) return error.MalformedHuffmanTree; |
| 161 | const weight_power_sum = @intCast(u16, weight_power_sum_big); | 159 | const weight_power_sum = @intCast(u16, weight_power_sum_big); |