diff --git a/src/header/poll/mod.rs b/src/header/poll/mod.rs index ccbef85c4800f450b85219d271f252528a9dbbd4..0ca503473d1de34344512e6db5e2797db7f25185 100644 --- a/src/header/poll/mod.rs +++ b/src/header/poll/mod.rs @@ -70,8 +70,7 @@ pub fn poll_epoll(fds: &mut [pollfd], timeout: c_int) -> c_int { return -1; } - for i in 0..res as usize { - let event = &events[i]; + for event in events.iter().take(res as usize) { let pi = unsafe { event.data.u64 as usize }; // TODO: Error status when fd does not match? if let Some(pfd) = fds.get_mut(pi) { diff --git a/src/header/sys_select/mod.rs b/src/header/sys_select/mod.rs index 0c5614b950aa40cfc834560b99fbf83909fc54c8..79869a82e48a055b127236c8a78458436d59bfdd 100644 --- a/src/header/sys_select/mod.rs +++ b/src/header/sys_select/mod.rs @@ -42,9 +42,9 @@ pub fn select_epoll( File::new(epfd) }; - let mut read_bitset : Option<&mut bitset> = readfds.map(|fd_set| &mut fd_set.fds_bits); - let mut write_bitset : Option<&mut bitset> = writefds.map(|fd_set| &mut fd_set.fds_bits); - let mut except_bitset : Option<&mut bitset> = exceptfds.map(|fd_set| &mut fd_set.fds_bits); + let mut read_bitset: Option<&mut bitset> = readfds.map(|fd_set| &mut fd_set.fds_bits); + let mut write_bitset: Option<&mut bitset> = writefds.map(|fd_set| &mut fd_set.fds_bits); + let mut except_bitset: Option<&mut bitset> = exceptfds.map(|fd_set| &mut fd_set.fds_bits); // Keep track of the number of file descriptors that do not support epoll let mut not_epoll = 0; @@ -129,8 +129,7 @@ pub fn select_epoll( } let mut count = not_epoll; - for i in 0..res as usize { - let event = &events[i]; + for event in events.iter().take(res as usize) { let fd = unsafe { event.data.fd }; // TODO: Error status when fd does not match? if fd >= 0 && fd < FD_SETSIZE as c_int { diff --git a/src/header/time/mod.rs b/src/header/time/mod.rs index 2b97d19f5d1fe35bc6532e54f0bd02bac2ba3d14..1e1af39ab219058339313a6577d12f672beea217 100644 --- a/src/header/time/mod.rs +++ b/src/header/time/mod.rs @@ -1,7 +1,5 @@ //! time implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/time.h.html -use core::mem::transmute; - use header::errno::EIO; use platform; use platform::types::*; @@ -74,7 +72,7 @@ pub struct sigevent; #[no_mangle] pub unsafe extern "C" fn asctime(timeptr: *const tm) -> *mut c_char { - asctime_r(timeptr, transmute::<&mut _, *mut c_char>(&mut ASCTIME)) + asctime_r(timeptr, &mut ASCTIME as *mut [i8; 26] as *mut i8) } #[no_mangle] diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs index f426cd3e37b1ea2c34c27ecf1e3aaf3e29d6cda9..aebd2a7980b611aece888c399bc0ba08f3788793 100644 --- a/src/ld_so/linker.rs +++ b/src/ld_so/linker.rs @@ -480,12 +480,11 @@ impl Linker { } }; - match rel.r_type { - reloc::R_X86_64_IRELATIVE => unsafe { + if rel.r_type == reloc::R_X86_64_IRELATIVE { + unsafe { let f: unsafe extern "C" fn() -> u64 = mem::transmute(b + a); set_u64(f()); - }, - _ => (), + } } } diff --git a/src/platform/rlb.rs b/src/platform/rlb.rs index e52b1bab1e60e65c089a3792a6f2813f6c8eef9a..b341cbc98f096ab1f298ffde6418c7d1d0ecde68 100644 --- a/src/platform/rlb.rs +++ b/src/platform/rlb.rs @@ -32,6 +32,7 @@ impl RawLineBuffer { // Can't use iterators because we want to return a reference. // See https://stackoverflow.com/a/30422716/5069285 + #[allow(clippy::should_implement_trait)] pub fn next(&mut self) -> Line { // Remove last line if let Some(newline) = self.newline {