File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ --- src/compress/mod.rs
2+ +++ src/compress/mod.rs
3+ @@ -1144,14 +1144,15 @@
4+ num_offset_syms -= 1;
5+ }
6+
7+ - let mut lens = Vec::with_capacity(num_litlen_syms + num_offset_syms);
8+ - lens.extend_from_slice(&self.litlen_lens[..num_litlen_syms]);
9+ - lens.extend_from_slice(&self.offset_lens[..num_offset_syms]);
10+ + let mut lens = [0u8; DEFLATE_NUM_LITLEN_SYMS + DEFLATE_NUM_OFFSET_SYMS];
11+ + let lens_len = num_litlen_syms + num_offset_syms;
12+ + lens[..num_litlen_syms].copy_from_slice(&self.litlen_lens[..num_litlen_syms]);
13+ + lens[num_litlen_syms..lens_len].copy_from_slice(&self.offset_lens[..num_offset_syms]);
14+
15+ let mut precode_freqs = [0u32; 19];
16+ let mut i = 0;
17+ - while i < lens.len() {
18+ + while i < lens_len {
19+ let len = lens[i];
20+ let mut run = 1;
21+ - while i + run < lens.len() && lens[i + run] == len {
22+ + while i + run < lens_len && lens[i + run] == len {
23+ run += 1;
24+ }
25+ @@ -1172,7 +1173,7 @@
26+ precode_freqs[len as usize] += 1;
27+ run -= 1;
28+ }
29+ - i += lens[i..].iter().take_while(|&&l| l == len).count();
30+ + i += lens[i..lens_len].iter().take_while(|&&l| l == len).count();
31+ }
32+
33+ let mut precode_lens = [0u8; 19];
Original file line number Diff line number Diff line change @@ -1144,16 +1144,17 @@ impl Compressor {
11441144 num_offset_syms -= 1 ;
11451145 }
11461146
1147- let mut lens = Vec :: with_capacity ( num_litlen_syms + num_offset_syms) ;
1148- lens. extend_from_slice ( & self . litlen_lens [ ..num_litlen_syms] ) ;
1149- lens. extend_from_slice ( & self . offset_lens [ ..num_offset_syms] ) ;
1147+ let mut lens = [ 0u8 ; DEFLATE_NUM_LITLEN_SYMS + DEFLATE_NUM_OFFSET_SYMS ] ;
1148+ let lens_len = num_litlen_syms + num_offset_syms;
1149+ lens[ ..num_litlen_syms] . copy_from_slice ( & self . litlen_lens [ ..num_litlen_syms] ) ;
1150+ lens[ num_litlen_syms..lens_len] . copy_from_slice ( & self . offset_lens [ ..num_offset_syms] ) ;
11501151
11511152 let mut precode_freqs = [ 0u32 ; 19 ] ;
11521153 let mut i = 0 ;
1153- while i < lens . len ( ) {
1154+ while i < lens_len {
11541155 let len = lens[ i] ;
11551156 let mut run = 1 ;
1156- while i + run < lens . len ( ) && lens[ i + run] == len {
1157+ while i + run < lens_len && lens[ i + run] == len {
11571158 run += 1 ;
11581159 }
11591160 if len == 0 {
You can’t perform that action at this time.
0 commit comments