diff --git a/src/listhead.rs b/src/listhead.rs index 7c3711a..69e17e5 100644 --- a/src/listhead.rs +++ b/src/listhead.rs @@ -42,6 +42,7 @@ impl ListHead { pub fn del_init(&mut self) { self.next.upgrade().unwrap().borrow_mut().prev = self.prev.clone(); self.prev.upgrade().unwrap().borrow_mut().next = self.next.clone(); + self.init(); } pub fn empty(&self) -> bool { @@ -70,6 +71,7 @@ impl ListHead { pnew.borrow_mut().next = head.borrow_mut().next.clone(); pnew.borrow_mut().next.upgrade().unwrap().borrow_mut().prev = Rc::downgrade(pnew); pnew.borrow_mut().prev = head.borrow_mut().prev.clone(); + head.borrow_mut().init(); } }