Fixing correctness (and avoid triggering optimisations)
[?]
Jan 22, 2021, 4:07 PM
TCBN2JMEWR6HKJOFZWZJJQZ5KN4QIAWJE44CTDX67NT7NJAYBWCACDependencies
Change contents
- replacement in src/main.rs at line 173
pub unsafe fn lookup_ord_(&mut self, k0: u64) -> u16 {let mut a = 16;let mut b = self.size();assert!(b <= 4096);pub unsafe fn lookup_ord_(&mut self, k0: u64) -> (u16, u16) {let mut a = 0;let mut b = (self.size() - 16) / 24; - replacement in src/main.rs at line 177
let mid = (a + b) / 2 - 16;let mid = 16 + mid - (mid % 24);let k = *(self.p.offset(mid as isize) as *mut u64);let mid = (a + b) / 2;let k = *(self.p.offset((16 + mid * 24 + 8) as isize) as *mut u64); - edit in src/main.rs at line 184
} else if k == k0 {a = mid;b = mid;break - replacement in src/main.rs at line 192
a(16 + a * 24, 16 + b * 24) - replacement in src/main.rs at line 195
let off = self.lookup_ord_(k0) as isize;let k = *(self.p.offset(off) as *mut u64);let (off, _) = self.lookup_ord_(k0);let off = off as isize;let k = *(self.p.offset(off + 8) as *mut u64); - replacement in src/main.rs at line 199
Some(*(self.p.offset(off + 8) as *mut u64))Some(*(self.p.offset(off + 16) as *mut u64)) - replacement in src/main.rs at line 206
let off = self.lookup_ord_(k0);let (_, off) = self.lookup_ord_(k0);