File tree 3 files changed +6
-3
lines changed
3 files changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -83,7 +83,7 @@ impl HoleList {
83
83
84
84
/// A block containing free memory. It points to the next hole and thus forms a linked list.
85
85
#[ cfg( not( test) ) ]
86
- struct Hole {
86
+ pub struct Hole {
87
87
size : usize ,
88
88
next : Option < Unique < Hole > > ,
89
89
}
Original file line number Diff line number Diff line change 6
6
#[ macro_use]
7
7
extern crate std;
8
8
9
- use hole:: HoleList ;
9
+ use hole:: { Hole , HoleList } ;
10
+ use core:: mem;
10
11
11
12
mod hole;
12
13
#[ cfg( test) ]
@@ -62,6 +63,7 @@ impl Heap {
62
63
if size < HoleList :: min_size ( ) {
63
64
size = HoleList :: min_size ( ) ;
64
65
}
66
+ let size = align_up ( size, mem:: align_of :: < Hole > ( ) ) ;
65
67
66
68
self . holes . allocate_first_fit ( size, align)
67
69
}
@@ -77,6 +79,8 @@ impl Heap {
77
79
if size < HoleList :: min_size ( ) {
78
80
size = HoleList :: min_size ( ) ;
79
81
}
82
+ let size = align_up ( size, mem:: align_of :: < Hole > ( ) ) ;
83
+
80
84
self . holes . deallocate ( ptr, size) ;
81
85
}
82
86
Original file line number Diff line number Diff line change 1
1
use std:: prelude:: v1:: * ;
2
2
use std:: mem:: { size_of, align_of} ;
3
3
use super :: * ;
4
- use super :: hole:: * ;
5
4
6
5
fn new_heap ( ) -> Heap {
7
6
const HEAP_SIZE : usize = 1000 ;
You can’t perform that action at this time.
0 commit comments