This commit is contained in:
aozhiwei 2023-10-28 10:10:43 +08:00
parent afb739327f
commit 2f86bbc0ae

View File

@ -14,7 +14,7 @@ pub struct ListHead<T> {
impl<T> ListHead<T> { impl<T> ListHead<T> {
pub fn new_head() -> Rc::<RefCell::<ListHead<T>>> { pub fn new_head() -> Rc::<RefCell::<Self>> {
let this = Rc::new(RefCell::new(ListHead{ let this = Rc::new(RefCell::new(ListHead{
prev: Default::default(), prev: Default::default(),
next: Default::default(), next: Default::default(),
@ -26,13 +26,14 @@ impl<T> ListHead<T> {
return this; return this;
} }
pub fn new_node(data: Weak::<RefCell::<T>>) -> Rc::<RefCell::<ListHead<T>>> { pub fn new_node(data: Weak::<RefCell::<T>>) -> Rc::<RefCell::<Self>> {
let this = Rc::new(RefCell::new(ListHead{ let this = Rc::new(RefCell::new(ListHead{
prev: Weak::<RefCell::<ListHead<T>>>::new(), prev: Default::default(),
next: Weak::<RefCell::<ListHead<T>>>::new(), next: Default::default(),
data: data, data: data,
_self_wp: Weak::<RefCell::<ListHead<T>>>::new() _self_wp: Default::default(),
})); }));
this.borrow_mut()._self_wp = Rc::downgrade(&this);
this.borrow_mut().init(); this.borrow_mut().init();
return this; return this;
} }