Skip to content

Commit eb5a825

Browse files
committed
fix: remove decoded mappings
1 parent 920711b commit eb5a825

File tree

2 files changed

+17
-42
lines changed

2 files changed

+17
-42
lines changed

src/helpers.rs

Lines changed: 14 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -466,20 +466,20 @@ fn stream_chunks_of_source_map_final<'a>(
466466
on_name(i as u32, Cow::Borrowed(name));
467467
}
468468
let mut mapping_active_line = 0;
469-
let mut on_mapping = |mapping: &Mapping| {
469+
let mut on_mapping = |mapping: Mapping| {
470470
if mapping.generated_line >= result.generated_line
471471
&& (mapping.generated_column >= result.generated_column
472472
|| mapping.generated_line > result.generated_line)
473473
{
474474
return;
475475
}
476-
if let Some(original) = &mapping.original {
476+
if let Some(original) = mapping.original {
477477
on_chunk(
478478
None,
479479
Mapping {
480480
generated_line: mapping.generated_line,
481481
generated_column: mapping.generated_column,
482-
original: Some(*original),
482+
original: Some(original),
483483
},
484484
);
485485
mapping_active_line = mapping.generated_line;
@@ -527,7 +527,7 @@ fn stream_chunks_of_source_map_full<'a>(
527527
let mut tracking_generated_column: u32 = 0;
528528
let mut tracking_mapping_original: Option<OriginalLocation> = None;
529529

530-
let mut mappings_iter = source_map.decoded_mappings().iter();
530+
let mut mappings_iter = source_map.decoded_mappings();
531531
let mut current_mapping = mappings_iter.next();
532532

533533
for (current_generated_index, c) in source.char_indices() {
@@ -629,25 +629,15 @@ fn stream_chunks_of_source_map_lines_final<'a>(
629629
};
630630
let mut current_generated_line = 1;
631631

632-
let mut on_mapping = |mapping: &Mapping| {
633-
if let Some(original) = &mapping.original.filter(|_| {
632+
let mut on_mapping = |mut mapping: Mapping| {
633+
if let Some(mut original) = mapping.original.filter(|_| {
634634
current_generated_line <= mapping.generated_line
635635
&& mapping.generated_line <= final_line
636636
}) {
637-
on_chunk(
638-
None,
639-
Mapping {
640-
generated_line: mapping.generated_line,
641-
generated_column: 0,
642-
original: Some(OriginalLocation {
643-
source_index: original.source_index,
644-
original_line: original.original_line,
645-
original_column: original.original_column,
646-
name_index: None,
647-
}),
648-
},
649-
);
637+
mapping.generated_column = 0;
638+
original.name_index = None;
650639
current_generated_line = mapping.generated_line + 1;
640+
on_chunk(None, mapping);
651641
}
652642
};
653643
for mapping in source_map.decoded_mappings() {
@@ -678,7 +668,7 @@ fn stream_chunks_of_source_map_lines_full<'a>(
678668
)
679669
}
680670
let mut current_generated_line = 1;
681-
let mut on_mapping = |mapping: &Mapping| {
671+
let mut on_mapping = |mut mapping: Mapping| {
682672
if mapping.original.is_none()
683673
|| mapping.generated_line < current_generated_line
684674
|| mapping.generated_line as usize > lines.len()
@@ -699,24 +689,14 @@ fn stream_chunks_of_source_map_lines_full<'a>(
699689
}
700690
current_generated_line += 1;
701691
}
702-
if let Some(original) = &mapping
692+
if let Some(mut original) = mapping
703693
.original
704694
.filter(|_| mapping.generated_line as usize <= lines.len())
705695
{
706696
let chunk = lines[current_generated_line as usize - 1];
707-
on_chunk(
708-
Some(Cow::Borrowed(chunk)),
709-
Mapping {
710-
generated_line: mapping.generated_line,
711-
generated_column: 0,
712-
original: Some(OriginalLocation {
713-
source_index: original.source_index,
714-
original_line: original.original_line,
715-
original_column: original.original_column,
716-
name_index: None,
717-
}),
718-
},
719-
);
697+
mapping.generated_column = 0;
698+
original.name_index = None;
699+
on_chunk(Some(Cow::Borrowed(chunk)), mapping);
720700
current_generated_line += 1;
721701
}
722702
};

src/source.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::{
44
convert::{TryFrom, TryInto},
55
fmt,
66
hash::{Hash, Hasher},
7-
sync::{Arc, OnceLock},
7+
sync::Arc,
88
};
99

1010
use dyn_clone::DynClone;
@@ -194,7 +194,6 @@ pub struct SourceMap {
194194
sources_content: Vec<Cow<'static, str>>,
195195
names: Vec<Cow<'static, str>>,
196196
source_root: Option<String>,
197-
decoded_mappings: OnceLock<Vec<Mapping>>,
198197
}
199198

200199
impl Hash for SourceMap {
@@ -224,7 +223,6 @@ impl SourceMap {
224223
sources_content,
225224
names,
226225
source_root: None,
227-
decoded_mappings: Default::default(),
228226
}
229227
}
230228

@@ -239,10 +237,8 @@ impl SourceMap {
239237
}
240238

241239
/// Get the decoded mappings in [SourceMap].
242-
pub fn decoded_mappings(&'_ self) -> &[Mapping] {
243-
self
244-
.decoded_mappings
245-
.get_or_init(|| decode_mappings(self).collect::<Vec<_>>())
240+
pub fn decoded_mappings(&self) -> impl Iterator<Item = Mapping> + '_ {
241+
decode_mappings(self)
246242
}
247243

248244
/// Get the mappings string in [SourceMap].
@@ -433,7 +429,6 @@ impl TryFrom<RawSourceMap> for SourceMap {
433429
sources_content,
434430
names,
435431
source_root: raw.source_root,
436-
decoded_mappings: Default::default(),
437432
})
438433
}
439434
}

0 commit comments

Comments
 (0)