diff --git a/src/string/src/lib.rs b/src/string/src/lib.rs index ca56dff0011bfac9dd88e78b810a6172d812e865..5b5c15832b983c7fa1f02e777d8b6740a86b0655 100644 --- a/src/string/src/lib.rs +++ b/src/string/src/lib.rs @@ -125,7 +125,7 @@ pub unsafe extern "C" fn strcspn(s1: *const c_char, s2: *const c_char) -> c_ulon // The below logic is effectively ripped from the musl implementation - let mut byteset = [0u8; 32 / mem::size_of::<usize>()]; + let mut byteset = [0usize; 32 / mem::size_of::<usize>()]; let mut i = 0; while *s2.offset(i) != 0 { @@ -135,9 +135,9 @@ pub unsafe extern "C" fn strcspn(s1: *const c_char, s2: *const c_char) -> c_ulon } i = 0; // reset - while *s2.offset(i) != 0 { - if byteset[(*s2.offset(i) as usize) / (8 * byteset.len())] - & 1 << (*s2.offset(i) as usize % (8 * byteset.len())) > 0 + while *s1.offset(i) != 0 { + if byteset[(*s1.offset(i) as usize) / (8 * byteset.len())] + & 1 << (*s1.offset(i) as usize % (8 * byteset.len())) > 0 { break; } @@ -277,7 +277,7 @@ pub unsafe extern "C" fn strspn(s1: *const c_char, s2: *const c_char) -> c_ulong // The below logic is effectively ripped from the musl implementation - let mut byteset = [0u8; 32 / mem::size_of::<usize>()]; + let mut byteset = [0usize; 32 / mem::size_of::<usize>()]; let mut i = 0; while *s2.offset(i) != 0 { @@ -287,9 +287,9 @@ pub unsafe extern "C" fn strspn(s1: *const c_char, s2: *const c_char) -> c_ulong } i = 0; // reset - while *s2.offset(i) != 0 { - if byteset[(*s2.offset(i) as usize) / (8 * byteset.len())] - & 1 << (*s2.offset(i) as usize % (8 * byteset.len())) < 1 + while *s1.offset(i) != 0 { + if byteset[(*s1.offset(i) as usize) / (8 * byteset.len())] + & 1 << (*s1.offset(i) as usize % (8 * byteset.len())) < 1 { break; }