about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTaras Tsugrii <taras.tsugriy@gmail.com>2023-08-15 18:33:57 -0700
committerTaras Tsugrii <taras.tsugriy@gmail.com>2023-08-16 10:05:14 -0700
commitac0a8ca40d163c6f7a2724ac0c785cf0bf2e9ef4 (patch)
treecbe0dc94903e37c5536a70ed9c0bef09aa29b8be
parent5b9168a32d143067ffe99fb1c6979b8daa6d715e (diff)
downloadrust-ac0a8ca40d163c6f7a2724ac0c785cf0bf2e9ef4.tar.gz
rust-ac0a8ca40d163c6f7a2724ac0c785cf0bf2e9ef4.zip
Avoid unnecessary Vec resize.
If `size > 0` current implementation will first create an empty
vec and then push an element into it, which will cause a resize
that can be easily avoided.

It's obviously not a big deal, but this also gets rid of `mut`
local variable.
-rw-r--r--src/tools/miri/src/range_map.rs7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/tools/miri/src/range_map.rs b/src/tools/miri/src/range_map.rs
index 146715ddda2..2b4544228e5 100644
--- a/src/tools/miri/src/range_map.rs
+++ b/src/tools/miri/src/range_map.rs
@@ -27,11 +27,8 @@ impl<T> RangeMap<T> {
     #[inline(always)]
     pub fn new(size: Size, init: T) -> RangeMap<T> {
         let size = size.bytes();
-        let mut map = RangeMap { v: Vec::new() };
-        if size > 0 {
-            map.v.push(Elem { range: 0..size, data: init });
-        }
-        map
+        let v = if size > 0 { vec![Elem { range: 0..size, data: init }] } else { Vec::new() };
+        RangeMap { v }
     }
 
     /// Finds the index containing the given offset.