diff --git a/vm/src/obj/objbyteinner.rs b/vm/src/obj/objbyteinner.rs index 613df7872..149d912c5 100644 --- a/vm/src/obj/objbyteinner.rs +++ b/vm/src/obj/objbyteinner.rs @@ -685,7 +685,7 @@ impl PyByteInner { } pub fn capitalize(&self) -> Vec { - let mut new: Vec = Vec::new(); + let mut new: Vec = Vec::with_capacity(self.elements.len()); if let Some((first, second)) = self.elements.split_first() { new.push(first.to_ascii_uppercase()); second.iter().for_each(|x| new.push(x.to_ascii_lowercase())); @@ -932,7 +932,11 @@ impl PyByteInner { ) -> PyResult> { let (table, delete) = options.get_value(vm)?; - let mut res = Vec::new(); + let mut res = if delete.is_empty() { + Vec::with_capacity(self.elements.len()) + } else { + Vec::new() + }; for i in self.elements.iter() { if !delete.contains(&i) {