different unlink code, probably the same assembly
This commit is contained in:
parent
eb43c29389
commit
af8103b843
|
@ -504,13 +504,15 @@ mod job {
|
||||||
/// assumes job is in joblist
|
/// assumes job is in joblist
|
||||||
pub unsafe fn unlink(&self) {
|
pub unsafe fn unlink(&self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
let link = *self.link_mut();
|
let mut dummy = None;
|
||||||
if let Some(prev) = link.prev {
|
let Link { prev, next } = *self.link_mut();
|
||||||
prev.as_ref().link_mut().next = link.next;
|
|
||||||
}
|
*prev
|
||||||
if let Some(next) = link.next {
|
.map(|ptr| &mut ptr.as_ref().link_mut().next)
|
||||||
next.as_ref().link_mut().prev = link.prev;
|
.unwrap_or(&mut dummy) = next;
|
||||||
}
|
*next
|
||||||
|
.map(|ptr| &mut ptr.as_ref().link_mut().prev)
|
||||||
|
.unwrap_or(&mut dummy) = prev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue