Skip to content

Commit 3f6f8b7

Browse files
authored
Merge pull request #73 from cuviper/par_chunks_mut
Use rayon's `par_chunks_mut`
2 parents 0b19851 + 2809277 commit 3f6f8b7

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

src/decoder.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -781,21 +781,19 @@ fn compute_image_parallel(components: &[Component],
781781
output_size: Dimensions,
782782
is_jfif: bool,
783783
color_transform: Option<AdobeColorTransform>) -> Result<Vec<u8>> {
784-
use rayon::iter::*;
784+
use rayon::prelude::*;
785785

786786
let color_convert_func = try!(choose_color_convert_func(components.len(), is_jfif, color_transform));
787787
let upsampler = try!(Upsampler::new(components, output_size.width, output_size.height));
788788
let line_size = output_size.width as usize * components.len();
789789
let mut image = vec![0u8; line_size * output_size.height as usize];
790790

791-
image.chunks_mut(line_size)
792-
.collect::<Vec<&mut [u8]>>()
793-
.par_iter_mut()
791+
image.par_chunks_mut(line_size)
794792
.with_max_len(1)
795793
.enumerate()
796794
.for_each(|(row, line)| {
797-
upsampler.upsample_and_interleave_row(data, row, output_size.width as usize, *line);
798-
color_convert_func(*line, output_size.width as usize);
795+
upsampler.upsample_and_interleave_row(data, row, output_size.width as usize, line);
796+
color_convert_func(line, output_size.width as usize);
799797
});
800798

801799
Ok(image)
@@ -813,11 +811,9 @@ fn compute_image_parallel(components: &[Component],
813811
let mut image = vec![0u8; line_size * output_size.height as usize];
814812

815813
for (row, line) in image.chunks_mut(line_size)
816-
.collect::<Vec<&mut [u8]>>()
817-
.iter_mut()
818814
.enumerate() {
819-
upsampler.upsample_and_interleave_row(data, row, output_size.width as usize, *line);
820-
color_convert_func(*line, output_size.width as usize);
815+
upsampler.upsample_and_interleave_row(data, row, output_size.width as usize, line);
816+
color_convert_func(line, output_size.width as usize);
821817
}
822818

823819
Ok(image)

0 commit comments

Comments
 (0)