Skip to content

Commit 3c1808d

Browse files
committed
perf: substring
1 parent 0f8a33f commit 3c1808d

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

src/with_utf16.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@ impl<'object_pool, 'text> WithUtf16<'object_pool, 'text> {
3232
}
3333

3434
let utf16_byte_indices = self.utf16_byte_indices.get_or_init(|| {
35-
let mut vec = self.object_pool.pull(self.line.len());
35+
if self.line.is_ascii() {
36+
return None;
37+
}
3638

39+
let mut vec = self.object_pool.pull(self.line.len());
3740
let bytes = self.line.as_bytes();
3841
let mut byte_pos = 0;
3942
while byte_pos < bytes.len() {
@@ -57,14 +60,7 @@ impl<'object_pool, 'text> WithUtf16<'object_pool, 'text> {
5760
byte_pos += 4;
5861
}
5962
}
60-
61-
if vec.len() == self.line.len() {
62-
// Optimization: UTF-16 length equals UTF-8 length, indicating no surrogate pairs.
63-
// Return None to release the vector back to the object pool for better memory efficiency.
64-
None
65-
} else {
66-
Some(vec)
67-
}
63+
Some(vec)
6864
});
6965

7066
let utf8_len = self.line.len();

0 commit comments

Comments
 (0)