-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpatch.diff
More file actions
33 lines (30 loc) · 1.32 KB
/
patch.diff
File metadata and controls
33 lines (30 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--- src/compress/mod.rs
+++ src/compress/mod.rs
@@ -1144,14 +1144,15 @@
num_offset_syms -= 1;
}
- let mut lens = Vec::with_capacity(num_litlen_syms + num_offset_syms);
- lens.extend_from_slice(&self.litlen_lens[..num_litlen_syms]);
- lens.extend_from_slice(&self.offset_lens[..num_offset_syms]);
+ let mut lens = [0u8; DEFLATE_NUM_LITLEN_SYMS + DEFLATE_NUM_OFFSET_SYMS];
+ let lens_len = num_litlen_syms + num_offset_syms;
+ lens[..num_litlen_syms].copy_from_slice(&self.litlen_lens[..num_litlen_syms]);
+ lens[num_litlen_syms..lens_len].copy_from_slice(&self.offset_lens[..num_offset_syms]);
let mut precode_freqs = [0u32; 19];
let mut i = 0;
- while i < lens.len() {
+ while i < lens_len {
let len = lens[i];
let mut run = 1;
- while i + run < lens.len() && lens[i + run] == len {
+ while i + run < lens_len && lens[i + run] == len {
run += 1;
}
@@ -1172,7 +1173,7 @@
precode_freqs[len as usize] += 1;
run -= 1;
}
- i += lens[i..].iter().take_while(|&&l| l == len).count();
+ i += lens[i..lens_len].iter().take_while(|&&l| l == len).count();
}
let mut precode_lens = [0u8; 19];