Skip to content

Commit 89e14f6

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

File tree

1 file changed

+24
-37
lines changed

1 file changed

+24
-37
lines changed

src/helpers.rs

+24-37
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,14 @@ 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(
184+
b',',
185+
b';',
186+
&self.mapping_str[self.current_index..],
187+
) {
188+
Some(index) => self.current_index += index,
189+
None => self.current_index = mapping_str_len,
190+
},
184191
}
185192

186193
if self.current_index == mapping_str_len {
@@ -461,20 +468,20 @@ fn stream_chunks_of_source_map_final<'a>(
461468
on_name(i as u32, Cow::Borrowed(name));
462469
}
463470
let mut mapping_active_line = 0;
464-
let mut on_mapping = |mapping: &Mapping| {
471+
let mut on_mapping = |mapping: Mapping| {
465472
if mapping.generated_line >= result.generated_line
466473
&& (mapping.generated_column >= result.generated_column
467474
|| mapping.generated_line > result.generated_line)
468475
{
469476
return;
470477
}
471-
if let Some(original) = &mapping.original {
478+
if let Some(original) = mapping.original {
472479
on_chunk(
473480
None,
474481
Mapping {
475482
generated_line: mapping.generated_line,
476483
generated_column: mapping.generated_column,
477-
original: Some(*original),
484+
original: Some(original),
478485
},
479486
);
480487
mapping_active_line = mapping.generated_line;
@@ -490,7 +497,7 @@ fn stream_chunks_of_source_map_final<'a>(
490497
}
491498
};
492499
for mapping in source_map.decoded_mappings() {
493-
on_mapping(&mapping);
500+
on_mapping(mapping);
494501
}
495502
result
496503
}
@@ -622,29 +629,19 @@ fn stream_chunks_of_source_map_lines_final<'a>(
622629
};
623630
let mut current_generated_line = 1;
624631

625-
let mut on_mapping = |mapping: &Mapping| {
626-
if let Some(original) = &mapping.original.filter(|_| {
632+
let mut on_mapping = |mut mapping: Mapping| {
633+
if let Some(mut original) = mapping.original.filter(|_| {
627634
current_generated_line <= mapping.generated_line
628635
&& mapping.generated_line <= final_line
629636
}) {
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-
);
637+
mapping.generated_column = 0;
638+
original.name_index = None;
643639
current_generated_line = mapping.generated_line + 1;
640+
on_chunk(None, mapping);
644641
}
645642
};
646643
for mapping in source_map.decoded_mappings() {
647-
on_mapping(&mapping);
644+
on_mapping(mapping);
648645
}
649646
result
650647
}
@@ -671,7 +668,7 @@ fn stream_chunks_of_source_map_lines_full<'a>(
671668
)
672669
}
673670
let mut current_generated_line = 1;
674-
let mut on_mapping = |mapping: &Mapping| {
671+
let mut on_mapping = |mut mapping: Mapping| {
675672
if mapping.original.is_none()
676673
|| mapping.generated_line < current_generated_line
677674
|| mapping.generated_line as usize > lines.len()
@@ -692,29 +689,19 @@ fn stream_chunks_of_source_map_lines_full<'a>(
692689
}
693690
current_generated_line += 1;
694691
}
695-
if let Some(original) = &mapping
692+
if let Some(mut original) = mapping
696693
.original
697694
.filter(|_| mapping.generated_line as usize <= lines.len())
698695
{
699696
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-
);
697+
mapping.generated_column = 0;
698+
original.name_index = None;
699+
on_chunk(Some(Cow::Borrowed(chunk)), mapping);
713700
current_generated_line += 1;
714701
}
715702
};
716703
for mapping in source_map.decoded_mappings() {
717-
on_mapping(&mapping);
704+
on_mapping(mapping);
718705
}
719706
while current_generated_line as usize <= lines.len() {
720707
let chunk = lines[current_generated_line as usize - 1];

0 commit comments

Comments
 (0)