From 4a8b04eda0505948bae2f1be367b10bd8ba082e5 Mon Sep 17 00:00:00 2001 From: Ulrik Sverdrup Date: Tue, 22 Nov 2016 13:47:45 +0100 Subject: [PATCH] utf8 validation: Cleanup code in the ascii fast path --- src/libcore/str/mod.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs index 48c0f0b27087..7cb70bce7b86 100644 --- a/src/libcore/str/mod.rs +++ b/src/libcore/str/mod.rs @@ -1292,13 +1292,11 @@ fn run_utf8_validation(v: &[u8]) -> Result<(), Utf8Error> { if align == 0 { while offset < blocks_end { unsafe { - let u = *(ptr.offset(offset as isize) as *const usize); - let v = *(ptr.offset((offset + usize_bytes) as isize) as *const usize); - + let block = ptr.offset(offset as isize) as *const usize; // break if there is a nonascii byte - let zu = contains_nonascii(u); - let zv = contains_nonascii(v); - if zu || zv { + let zu = contains_nonascii(*block); + let zv = contains_nonascii(*block.offset(1)); + if zu | zv { break; } }