瀏覽代碼

Merge pull request #68 from Tommoa/master

Fixed strcspn and strspn
Jeremy Soller 7 年之前
父節點
當前提交
4f5e978634
共有 1 個文件被更改,包括 8 次插入8 次删除
  1. 8 8
      src/string/src/lib.rs

+ 8 - 8
src/string/src/lib.rs

@@ -129,15 +129,15 @@ pub unsafe extern "C" fn strcspn(s1: *const c_char, s2: *const c_char) -> c_ulon
 
 
     let mut i = 0;
     let mut i = 0;
     while *s2.offset(i) != 0 {
     while *s2.offset(i) != 0 {
-        byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())] |=
-            1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>()));
+        byteset[(*s2.offset(i) as usize) / (8 * byteset.len())] |=
+            1 << (*s2.offset(i) as usize % (8 * byteset.len()));
         i += 1;
         i += 1;
     }
     }
 
 
     i = 0; // reset
     i = 0; // reset
     while *s2.offset(i) != 0 {
     while *s2.offset(i) != 0 {
-        if byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())]
-            & 1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>())) > 0
+        if byteset[(*s2.offset(i) as usize) / (8 * byteset.len())]
+            & 1 << (*s2.offset(i) as usize % (8 * byteset.len())) > 0
         {
         {
             break;
             break;
         }
         }
@@ -281,15 +281,15 @@ pub unsafe extern "C" fn strspn(s1: *const c_char, s2: *const c_char) -> c_ulong
 
 
     let mut i = 0;
     let mut i = 0;
     while *s2.offset(i) != 0 {
     while *s2.offset(i) != 0 {
-        byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())] |=
-            1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>()));
+        byteset[(*s2.offset(i) as usize) / (8 * byteset.len())] |=
+            1 << (*s2.offset(i) as usize % (8 * byteset.len()));
         i += 1;
         i += 1;
     }
     }
 
 
     i = 0; // reset
     i = 0; // reset
     while *s2.offset(i) != 0 {
     while *s2.offset(i) != 0 {
-        if byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())]
-            & 1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>())) < 1
+        if byteset[(*s2.offset(i) as usize) / (8 * byteset.len())]
+            & 1 << (*s2.offset(i) as usize % (8 * byteset.len())) < 1
         {
         {
             break;
             break;
         }
         }