about summary refs log tree commit diff
path: root/src/libnative
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-10-02 14:50:49 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-10-02 14:50:49 -0700
commit2bb44554de1f8eb4cc24a70f412f659abe86a7c8 (patch)
tree1dd1c9d2ff2d831a6d6cc72b9d83f77d21f595c9 /src/libnative
parent005ae8e3dd7ae0af24c9cd46741f8976c9d2241f (diff)
parentaf633ce157082bf2b0fd0577765e9b49c34c3e90 (diff)
downloadrust-2bb44554de1f8eb4cc24a70f412f659abe86a7c8.tar.gz
rust-2bb44554de1f8eb4cc24a70f412f659abe86a7c8.zip
rollup merge of #17720 : ben0x539/shifts
Diffstat (limited to 'src/libnative')
-rw-r--r--src/libnative/io/process.rs17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/libnative/io/process.rs b/src/libnative/io/process.rs
index 3a6ae42f946..7a0c1c35d65 100644
--- a/src/libnative/io/process.rs
+++ b/src/libnative/io/process.rs
@@ -583,10 +583,11 @@ fn spawn_process_os(cfg: ProcessConfig,
                 let mut bytes = [0, ..4];
                 return match input.inner_read(bytes) {
                     Ok(4) => {
-                        let errno = (bytes[0] << 24) as i32 |
-                                    (bytes[1] << 16) as i32 |
-                                    (bytes[2] <<  8) as i32 |
-                                    (bytes[3] <<  0) as i32;
+                        let errno = (bytes[0] as i32 << 24) |
+                                    (bytes[1] as i32 << 16) |
+                                    (bytes[2] as i32 <<  8) |
+                                    (bytes[3] as i32 <<  0);
+
                         Err(IoError {
                             code: errno as uint,
                             detail: None,
@@ -637,10 +638,10 @@ fn spawn_process_os(cfg: ProcessConfig,
             fn fail(output: &mut file::FileDesc) -> ! {
                 let errno = os::errno();
                 let bytes = [
-                    (errno << 24) as u8,
-                    (errno << 16) as u8,
-                    (errno <<  8) as u8,
-                    (errno <<  0) as u8,
+                    (errno >> 24) as u8,
+                    (errno >> 16) as u8,
+                    (errno >>  8) as u8,
+                    (errno >>  0) as u8,
                 ];
                 assert!(output.inner_write(bytes).is_ok());
                 unsafe { libc::_exit(1) }