Merge branch 'dirent-fnmatch-cleanup' into 'master'

dirent and fnmatch cleanup

See merge request redox-os/relibc!1029
This commit is contained in:
Jeremy Soller
2026-02-22 08:16:00 -07:00
3 changed files with 14 additions and 17 deletions
+10 -10
View File
@@ -238,7 +238,7 @@ pub extern "C" fn posix_getdents(
nbyte: size_t,
_flags: c_int,
) -> ssize_t {
let slice = unsafe { slice::from_raw_parts_mut(buf as *mut u8, nbyte) };
let slice = unsafe { slice::from_raw_parts_mut(buf.cast::<u8>(), nbyte) };
Sys::posix_getdents(fildes, slice)
.map(|s| s as ssize_t)
@@ -299,18 +299,18 @@ pub unsafe extern "C" fn scandir(
break;
}
if let Some(filter) = filter {
if filter(entry) == 0 {
continue;
}
if let Some(filter) = filter
&& filter(entry) == 0
{
continue;
}
let copy = unsafe { platform::alloc(mem::size_of::<dirent>()) } as *mut dirent;
let copy = unsafe { platform::alloc(mem::size_of::<dirent>()) }.cast::<dirent>();
if copy.is_null() {
break;
}
unsafe { ptr::write(copy, (*entry).clone()) };
if let Err(_) = vec.push(copy) {
if vec.push(copy).is_err() {
break;
}
}
@@ -318,13 +318,13 @@ pub unsafe extern "C" fn scandir(
closedir(unsafe { Box::from_raw(dir) });
let len = vec.len();
if let Err(_) = vec.shrink_to_fit() {
if vec.shrink_to_fit().is_err() {
return -1;
}
if platform::ERRNO.get() != 0 {
for ptr in &mut vec {
unsafe { platform::free(*ptr as *mut c_void) };
unsafe { platform::free((*ptr).cast::<c_void>()) };
}
-1
} else {
@@ -340,7 +340,7 @@ pub unsafe extern "C" fn scandir(
platform::ERRNO.set(old_errno);
unsafe {
stdlib::qsort(
*namelist as *mut c_void,
(*namelist).cast::<c_void>(),
len as size_t,
mem::size_of::<*mut dirent>(),
mem::transmute(compare),
+2 -2
View File
@@ -136,9 +136,9 @@ pub unsafe extern "C" fn fnmatch(
while unsafe { *input.offset(len) != 0 } {
len += 1;
}
let input = unsafe { slice::from_raw_parts(input as *const u8, len as usize) };
let input = unsafe { slice::from_raw_parts(input.cast::<u8>(), len as usize) };
let tokens = unsafe { tokenize(pattern as *const u8, flags) };
let tokens = unsafe { tokenize(pattern.cast::<u8>(), flags) };
if PosixRegex::new(Cow::Owned(tokens))
.case_insensitive(flags & FNM_CASEFOLD == FNM_CASEFOLD)
+2 -5
View File
@@ -365,7 +365,7 @@ fn read_to_end_with_reservation<R: Read + ?Sized>(
let start_len = buf.len();
let mut g = Guard {
len: buf.len(),
buf: buf,
buf,
};
let ret;
loop {
@@ -916,10 +916,7 @@ pub trait Read {
where
Self: Sized,
{
Take {
inner: self,
limit: limit,
}
Take { inner: self, limit }
}
}