diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-10-02 14:50:49 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-10-02 14:50:49 -0700 |
| commit | 2bb44554de1f8eb4cc24a70f412f659abe86a7c8 (patch) | |
| tree | 1dd1c9d2ff2d831a6d6cc72b9d83f77d21f595c9 /src/libnative | |
| parent | 005ae8e3dd7ae0af24c9cd46741f8976c9d2241f (diff) | |
| parent | af633ce157082bf2b0fd0577765e9b49c34c3e90 (diff) | |
| download | rust-2bb44554de1f8eb4cc24a70f412f659abe86a7c8.tar.gz rust-2bb44554de1f8eb4cc24a70f412f659abe86a7c8.zip | |
rollup merge of #17720 : ben0x539/shifts
Diffstat (limited to 'src/libnative')
| -rw-r--r-- | src/libnative/io/process.rs | 17 |
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) } |
