Skip to content

Commit 6ec31b7

Browse files
committed
perf: remainder
1 parent b45b001 commit 6ec31b7

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/replace_source.rs

+10-6
Original file line numberDiff line numberDiff line change
@@ -663,10 +663,14 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
663663

664664
// Insert remaining replacements content split into chunks by lines
665665
let mut line = result.generated_line as i64 + generated_line_offset;
666-
let matches: Vec<Rope> = split_into_lines(&remainder).collect();
667-
for (m, content_line) in matches.iter().enumerate() {
666+
let lines: Vec<Rope> = split_into_lines(&remainder).collect();
667+
let lines_len = lines.len();
668+
for (m, content_line) in lines.into_iter().enumerate() {
669+
let newline = content_line.ends_with("\n");
670+
let content_line_len = content_line.len();
671+
668672
on_chunk(
669-
Some(content_line.clone()),
673+
Some(content_line),
670674
Mapping {
671675
generated_line: line as u32,
672676
generated_column: ((result.generated_column as i64)
@@ -679,11 +683,11 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
679683
},
680684
);
681685

682-
if m == matches.len() - 1 && !content_line.ends_with("\n") {
686+
if m == lines_len - 1 && !newline {
683687
if generated_column_offset_line == line {
684-
generated_column_offset += content_line.len() as i64;
688+
generated_column_offset += content_line_len as i64;
685689
} else {
686-
generated_column_offset = content_line.len() as i64;
690+
generated_column_offset = content_line_len as i64;
687691
generated_column_offset_line = line;
688692
}
689693
} else {

0 commit comments

Comments
 (0)