Skip to content

Commit f70d67f

Browse files
committed
Pre-ensure size of vectors when performing union, instead of pushing default elements one by one
1 parent bf29cb6 commit f70d67f

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

src/librustdoc/html/render/search_index.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ mod serde;
33

44
use std::collections::BTreeSet;
55
use std::collections::hash_map::Entry;
6-
use std::io;
76
use std::path::Path;
87
use std::string::FromUtf8Error;
8+
use std::{io, iter};
99

1010
use ::serde::de::{self, Deserializer, Error as _};
1111
use ::serde::ser::{SerializeSeq, Serializer};
@@ -555,19 +555,19 @@ impl SerializedSearchIndex {
555555
);
556556
}
557557
}
558-
for (i, other_generic_inverted_index) in other.generic_inverted_index.iter().enumerate() {
559-
for (size, other_list) in other_generic_inverted_index.iter().enumerate() {
560-
let self_generic_inverted_index = match self.generic_inverted_index.get_mut(i) {
561-
Some(self_generic_inverted_index) => self_generic_inverted_index,
562-
None => {
563-
self.generic_inverted_index.push(Vec::new());
564-
self.generic_inverted_index.last_mut().unwrap()
565-
}
566-
};
567-
while self_generic_inverted_index.len() <= size {
568-
self_generic_inverted_index.push(Vec::new());
569-
}
570-
self_generic_inverted_index[size].extend(
558+
if other.generic_inverted_index.len() > self.generic_inverted_index.len() {
559+
self.generic_inverted_index.resize(other.generic_inverted_index.len(), Vec::new());
560+
}
561+
for (other_generic_inverted_index, self_generic_inverted_index) in
562+
iter::zip(&other.generic_inverted_index, &mut self.generic_inverted_index)
563+
{
564+
if other_generic_inverted_index.len() > self_generic_inverted_index.len() {
565+
self_generic_inverted_index.resize(other_generic_inverted_index.len(), Vec::new());
566+
}
567+
for (other_list, self_list) in
568+
iter::zip(other_generic_inverted_index, self_generic_inverted_index)
569+
{
570+
self_list.extend(
571571
other_list
572572
.iter()
573573
.copied()

0 commit comments

Comments
 (0)