about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorUlrik Sverdrup <bluss@users.noreply.github.com>2016-11-22 13:47:45 +0100
committerUlrik Sverdrup <bluss@users.noreply.github.com>2016-11-22 13:47:45 +0100
commit4a8b04eda0505948bae2f1be367b10bd8ba082e5 (patch)
tree49924321854632dc60d753687bb9c4031430cd73 /src/libcore
parent20bd7f000fa788b9d38c5d664bb19b1ba38af850 (diff)
downloadrust-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.rs10
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;
                         }
                     }