From bc0053a2e73d5f8b537a2389a8f67b1b684c67be Mon Sep 17 00:00:00 2001 From: KAMADA Ken'ichi Date: Wed, 5 Feb 2020 23:05:10 +0900 Subject: [PATCH] Use Vec::drain to avoid an extra memory allocation. --- src/jpeg.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jpeg.rs b/src/jpeg.rs index 5a5e73c..01fab5f 100644 --- a/src/jpeg.rs +++ b/src/jpeg.rs @@ -92,7 +92,8 @@ fn get_exif_attr_sub(reader: &mut R) let mut seg = Vec::new(); reader.by_ref().take(seglen as u64 - 2).read_to_end(&mut seg)?; if code == marker::APP1 && seg.starts_with(&EXIF_ID) { - return Ok(seg.split_off(EXIF_ID.len())); + seg.drain(..EXIF_ID.len()); + return Ok(seg); } if code == marker::SOS { // Skipping the scan data is handled in the main loop,