about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <github333195615777966@oli-obk.de>2025-02-14 10:58:40 +0000
committerOli Scherer <github333195615777966@oli-obk.de>2025-02-14 16:23:07 +0000
commitbe2cd9540b0e56cd798ea1911ae48dc16ae2383f (patch)
treebe27f1b87700091f0c7a7018acbb05ff092e0267
parent905b1bf1ccccaf091a880b069f80dc38ad9ecad3 (diff)
downloadrust-be2cd9540b0e56cd798ea1911ae48dc16ae2383f.tar.gz
rust-be2cd9540b0e56cd798ea1911ae48dc16ae2383f.zip
Decode metadata buffer in one go
-rw-r--r--compiler/rustc_metadata/src/rmeta/encoder.rs5
1 files changed, 1 insertions, 4 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs
index 81fb918c604..d8a7c32a299 100644
--- a/compiler/rustc_metadata/src/rmeta/encoder.rs
+++ b/compiler/rustc_metadata/src/rmeta/encoder.rs
@@ -2272,10 +2272,7 @@ impl<D: Decoder> Decodable<D> for EncodedMetadata {
         let len = d.read_usize();
         let mmap = if len > 0 {
             let mut mmap = MmapMut::map_anon(len).unwrap();
-            for _ in 0..len {
-                (&mut mmap[..]).write_all(&[d.read_u8()]).unwrap();
-            }
-            mmap.flush().unwrap();
+            mmap.copy_from_slice(d.read_raw_bytes(len));
             Some(mmap.make_read_only().unwrap())
         } else {
             None