mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
chore: avoid unsafe code search original name (#2895)
close https://github.com/rolldown/rolldown/issues/716 --------- Co-authored-by: Boshen <boshenc@gmail.com>
This commit is contained in:
parent
54f7cd3978
commit
ef4b898be8
1 changed files with 10 additions and 4 deletions
|
|
@ -62,12 +62,18 @@ impl SourcemapBuilder {
|
|||
}
|
||||
|
||||
pub fn add_source_mapping_for_name(&mut self, output: &[u8], span: Span, name: &str) {
|
||||
// SAFETY: search original string by span.
|
||||
let original_name =
|
||||
unsafe { self.original_source.get_unchecked(span.start as usize..span.end as usize) };
|
||||
debug_assert!(
|
||||
(span.end as usize) <= self.original_source.len(),
|
||||
"violated {}:{} <= {} for {name}",
|
||||
span.start,
|
||||
span.end,
|
||||
self.original_source.len()
|
||||
);
|
||||
let original_name = self.original_source.get(span.start as usize..span.end as usize);
|
||||
// The token name should be original name.
|
||||
// If it hasn't change, name should be `None` to reduce `SourceMap` size.
|
||||
let token_name = if original_name == name { None } else { Some(original_name.into()) };
|
||||
let token_name =
|
||||
if original_name == Some(name) { None } else { original_name.map(Into::into) };
|
||||
self.add_source_mapping(output, span.start, token_name);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue