Skip to content

Commit fffb4cd

Browse files
committed
Merge branch 'remove-decoded_mappings' into perf-with-indices-v2
2 parents 961cc45 + eb5a825 commit fffb4cd

File tree

1 file changed

+20
-37
lines changed

1 file changed

+20
-37
lines changed

src/helpers.rs

+20-37
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,10 @@ impl<'a> SegmentIter<'a> {
180180
self.current_index += 1;
181181
self.tracing_index = self.current_index;
182182
}
183-
_ => self.current_index += 1,
183+
_ => match memchr::memchr2(b',', b';', &self.mapping_str[self.current_index..]) {
184+
Some(index) => self.current_index += index,
185+
None => self.current_index = mapping_str_len,
186+
},
184187
}
185188

186189
if self.current_index == mapping_str_len {
@@ -461,20 +464,20 @@ fn stream_chunks_of_source_map_final<'a>(
461464
on_name(i as u32, Cow::Borrowed(name));
462465
}
463466
let mut mapping_active_line = 0;
464-
let mut on_mapping = |mapping: &Mapping| {
467+
let mut on_mapping = |mapping: Mapping| {
465468
if mapping.generated_line >= result.generated_line
466469
&& (mapping.generated_column >= result.generated_column
467470
|| mapping.generated_line > result.generated_line)
468471
{
469472
return;
470473
}
471-
if let Some(original) = &mapping.original {
474+
if let Some(original) = mapping.original {
472475
on_chunk(
473476
None,
474477
Mapping {
475478
generated_line: mapping.generated_line,
476479
generated_column: mapping.generated_column,
477-
original: Some(*original),
480+
original: Some(original),
478481
},
479482
);
480483
mapping_active_line = mapping.generated_line;
@@ -490,7 +493,7 @@ fn stream_chunks_of_source_map_final<'a>(
490493
}
491494
};
492495
for mapping in source_map.decoded_mappings() {
493-
on_mapping(&mapping);
496+
on_mapping(mapping);
494497
}
495498
result
496499
}
@@ -622,29 +625,19 @@ fn stream_chunks_of_source_map_lines_final<'a>(
622625
};
623626
let mut current_generated_line = 1;
624627

625-
let mut on_mapping = |mapping: &Mapping| {
626-
if let Some(original) = &mapping.original.filter(|_| {
628+
let mut on_mapping = |mut mapping: Mapping| {
629+
if let Some(mut original) = mapping.original.filter(|_| {
627630
current_generated_line <= mapping.generated_line
628631
&& mapping.generated_line <= final_line
629632
}) {
630-
on_chunk(
631-
None,
632-
Mapping {
633-
generated_line: mapping.generated_line,
634-
generated_column: 0,
635-
original: Some(OriginalLocation {
636-
source_index: original.source_index,
637-
original_line: original.original_line,
638-
original_column: original.original_column,
639-
name_index: None,
640-
}),
641-
},
642-
);
633+
mapping.generated_column = 0;
634+
original.name_index = None;
643635
current_generated_line = mapping.generated_line + 1;
636+
on_chunk(None, mapping);
644637
}
645638
};
646639
for mapping in source_map.decoded_mappings() {
647-
on_mapping(&mapping);
640+
on_mapping(mapping);
648641
}
649642
result
650643
}
@@ -671,7 +664,7 @@ fn stream_chunks_of_source_map_lines_full<'a>(
671664
)
672665
}
673666
let mut current_generated_line = 1;
674-
let mut on_mapping = |mapping: &Mapping| {
667+
let mut on_mapping = |mut mapping: Mapping| {
675668
if mapping.original.is_none()
676669
|| mapping.generated_line < current_generated_line
677670
|| mapping.generated_line as usize > lines.len()
@@ -692,29 +685,19 @@ fn stream_chunks_of_source_map_lines_full<'a>(
692685
}
693686
current_generated_line += 1;
694687
}
695-
if let Some(original) = &mapping
688+
if let Some(mut original) = mapping
696689
.original
697690
.filter(|_| mapping.generated_line as usize <= lines.len())
698691
{
699692
let chunk = lines[current_generated_line as usize - 1];
700-
on_chunk(
701-
Some(Cow::Borrowed(chunk)),
702-
Mapping {
703-
generated_line: mapping.generated_line,
704-
generated_column: 0,
705-
original: Some(OriginalLocation {
706-
source_index: original.source_index,
707-
original_line: original.original_line,
708-
original_column: original.original_column,
709-
name_index: None,
710-
}),
711-
},
712-
);
693+
mapping.generated_column = 0;
694+
original.name_index = None;
695+
on_chunk(Some(Cow::Borrowed(chunk)), mapping);
713696
current_generated_line += 1;
714697
}
715698
};
716699
for mapping in source_map.decoded_mappings() {
717-
on_mapping(&mapping);
700+
on_mapping(mapping);
718701
}
719702
while current_generated_line as usize <= lines.len() {
720703
let chunk = lines[current_generated_line as usize - 1];

0 commit comments

Comments
 (0)