diff options
| author | Ulrik Sverdrup <bluss@users.noreply.github.com> | 2016-11-22 13:47:45 +0100 |
|---|---|---|
| committer | Ulrik Sverdrup <bluss@users.noreply.github.com> | 2016-11-22 13:47:45 +0100 |
| commit | 4a8b04eda0505948bae2f1be367b10bd8ba082e5 (patch) | |
| tree | 49924321854632dc60d753687bb9c4031430cd73 /src/libcore | |
| parent | 20bd7f000fa788b9d38c5d664bb19b1ba38af850 (diff) | |
| download | rust-4a8b04eda0505948bae2f1be367b10bd8ba082e5.tar.gz rust-4a8b04eda0505948bae2f1be367b10bd8ba082e5.zip | |
utf8 validation: Cleanup code in the ascii fast path
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/str/mod.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs index 48c0f0b2708..7cb70bce7b8 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; } } |
