@@ -21,12 +21,12 @@ pub struct MinHeapNode {
2121 pub right : Ptr < MinHeapNode > ,
2222}
2323pub fn Swap_0 ( a : Ptr < MinHeapNode > , b : Ptr < MinHeapNode > ) {
24- let t: Value < MinHeapNode > = Rc :: new ( RefCell :: new ( MinHeapNode {
24+ let mut t: MinHeapNode = MinHeapNode {
2525 data : a. with ( |__s| __s. data ) ,
2626 freq : a. with ( |__s| __s. freq ) ,
2727 left : a. with ( |__s| __s. left . clone ( ) ) ,
2828 right : a. with ( |__s| __s. right . clone ( ) ) ,
29- } ) ) ;
29+ } ;
3030 a. write ( {
3131 MinHeapNode {
3232 data : b. with ( |__s| __s. data ) ,
@@ -37,10 +37,10 @@ pub fn Swap_0(a: Ptr<MinHeapNode>, b: Ptr<MinHeapNode>) {
3737 } ) ;
3838 b. write ( {
3939 MinHeapNode {
40- data : { ( * t . borrow ( ) ) . data } ,
41- freq : { ( * t . borrow ( ) ) . freq } ,
42- left : { ( * t . borrow ( ) ) . left . clone ( ) } ,
43- right : { ( * t . borrow ( ) ) . right . clone ( ) } ,
40+ data : t . data ,
41+ freq : t . freq ,
42+ left : ( t . left ) . clone ( ) ,
43+ right : ( t . right ) . clone ( ) ,
4444 }
4545 } ) ;
4646}
@@ -73,15 +73,14 @@ impl MinHeap {
7373 }
7474 }
7575}
76- pub fn AllocMinHeap_1 ( capacity : i32 ) -> Option < Value < MinHeap > > {
77- let capacity: Value < i32 > = Rc :: new ( RefCell :: new ( capacity) ) ;
76+ pub fn AllocMinHeap_1 ( mut capacity : i32 ) -> Option < Value < MinHeap > > {
7877 let minHeap: Value < Option < Value < MinHeap > > > =
7978 Rc :: new ( RefCell :: new ( Some ( Rc :: new ( RefCell :: new ( {
8079 let __tmp_0: Value < MinHeap > = Rc :: new ( RefCell :: new ( MinHeap {
8180 size : 0 ,
82- capacity : ( * capacity. borrow ( ) ) ,
81+ capacity : capacity,
8382 arr : Some ( Rc :: new ( RefCell :: new (
84- ( 0 ..( ( * capacity. borrow ( ) ) as usize ) )
83+ ( 0 ..( capacity as usize ) )
8584 . map ( |_| <Ptr < MinHeapNode > >:: default ( ) )
8685 . collect :: < Box < [ _ ] > > ( ) ,
8786 ) ) ) ,
@@ -289,16 +288,14 @@ pub trait MinHeapImpl {
289288 fn move_assign ( & self , _a0 : Ptr < MinHeap > ) -> Ptr < MinHeap > ;
290289}
291290impl MinHeapImpl for Ptr < MinHeap > {
292- fn Alloc ( & self , data : i8 , freq : i32 ) -> Ptr < MinHeapNode > {
293- let data: Value < i8 > = Rc :: new ( RefCell :: new ( data) ) ;
294- let freq: Value < i32 > = Rc :: new ( RefCell :: new ( freq) ) ;
291+ fn Alloc ( & self , mut data : i8 , mut freq : i32 ) -> Ptr < MinHeapNode > {
295292 ( * self )
296293 . with ( |__s| __s. alloc . clone ( ) )
297294 . as_ref ( )
298295 . unwrap ( )
299296 . borrow_mut ( ) [ ( ( * self ) . with ( |__s| __s. next ) as usize ) as usize ] = MinHeapNode {
300- data : ( * data. borrow ( ) ) ,
301- freq : ( * freq. borrow ( ) ) ,
297+ data : data,
298+ freq : freq,
302299 left : Ptr :: < MinHeapNode > :: null ( ) ,
303300 right : Ptr :: < MinHeapNode > :: null ( ) ,
304301 } ;
0 commit comments