1
1
use std:: prelude:: v1:: * ;
2
2
use std:: mem:: { size_of, align_of} ;
3
- use alloc :: allocator :: Layout ;
3
+ use core :: alloc :: Layout ;
4
4
use super :: * ;
5
5
6
6
fn new_heap ( ) -> Heap {
@@ -46,7 +46,7 @@ fn allocate_double_usize() {
46
46
let layout = Layout :: from_size_align ( size, align_of :: < usize > ( ) ) ;
47
47
let addr = heap. allocate_first_fit ( layout. unwrap ( ) ) ;
48
48
assert ! ( addr. is_ok( ) ) ;
49
- let addr = addr. unwrap ( ) as usize ;
49
+ let addr = addr. unwrap ( ) . as_ptr ( ) as usize ;
50
50
assert ! ( addr == heap. bottom) ;
51
51
let ( hole_addr, hole_size) = heap. holes . first_hole ( ) . expect ( "ERROR: no hole left" ) ;
52
52
assert ! ( hole_addr == heap. bottom + size) ;
@@ -64,7 +64,7 @@ fn allocate_and_free_double_usize() {
64
64
let layout = Layout :: from_size_align ( size_of :: < usize > ( ) * 2 , align_of :: < usize > ( ) ) . unwrap ( ) ;
65
65
let x = heap. allocate_first_fit ( layout. clone ( ) ) . unwrap ( ) ;
66
66
unsafe {
67
- * ( x as * mut ( usize , usize ) ) = ( 0xdeafdeadbeafbabe , 0xdeafdeadbeafbabe ) ;
67
+ * ( x. as_ptr ( ) as * mut ( usize , usize ) ) = ( 0xdeafdeadbeafbabe , 0xdeafdeadbeafbabe ) ;
68
68
69
69
heap. deallocate ( x, layout. clone ( ) ) ;
70
70
assert_eq ! ( ( * ( heap. bottom as * const Hole ) ) . size, heap. size) ;
@@ -83,11 +83,11 @@ fn deallocate_right_before() {
83
83
84
84
unsafe {
85
85
heap. deallocate ( y, layout. clone ( ) ) ;
86
- assert_eq ! ( ( * ( y as * const Hole ) ) . size, layout. size( ) ) ;
86
+ assert_eq ! ( ( * ( y. as_ptr ( ) as * const Hole ) ) . size, layout. size( ) ) ;
87
87
heap. deallocate ( x, layout. clone ( ) ) ;
88
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, layout. size( ) * 2 ) ;
88
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, layout. size( ) * 2 ) ;
89
89
heap. deallocate ( z, layout. clone ( ) ) ;
90
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, heap. size) ;
90
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, heap. size) ;
91
91
}
92
92
}
93
93
@@ -103,11 +103,11 @@ fn deallocate_right_behind() {
103
103
104
104
unsafe {
105
105
heap. deallocate ( x, layout. clone ( ) ) ;
106
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, size) ;
106
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, size) ;
107
107
heap. deallocate ( y, layout. clone ( ) ) ;
108
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, size * 2 ) ;
108
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, size * 2 ) ;
109
109
heap. deallocate ( z, layout. clone ( ) ) ;
110
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, heap. size) ;
110
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, heap. size) ;
111
111
}
112
112
}
113
113
@@ -124,14 +124,14 @@ fn deallocate_middle() {
124
124
125
125
unsafe {
126
126
heap. deallocate ( x, layout. clone ( ) ) ;
127
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, size) ;
127
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, size) ;
128
128
heap. deallocate ( z, layout. clone ( ) ) ;
129
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, size) ;
130
- assert_eq ! ( ( * ( z as * const Hole ) ) . size, size) ;
129
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, size) ;
130
+ assert_eq ! ( ( * ( z. as_ptr ( ) as * const Hole ) ) . size, size) ;
131
131
heap. deallocate ( y, layout. clone ( ) ) ;
132
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, size * 3 ) ;
132
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, size * 3 ) ;
133
133
heap. deallocate ( a, layout. clone ( ) ) ;
134
- assert_eq ! ( ( * ( x as * const Hole ) ) . size, heap. size) ;
134
+ assert_eq ! ( ( * ( x. as_ptr ( ) as * const Hole ) ) . size, heap. size) ;
135
135
}
136
136
}
137
137
@@ -167,9 +167,9 @@ fn allocate_multiple_sizes() {
167
167
168
168
let x = heap. allocate_first_fit ( layout_1. clone ( ) ) . unwrap ( ) ;
169
169
let y = heap. allocate_first_fit ( layout_2. clone ( ) ) . unwrap ( ) ;
170
- assert_eq ! ( y as usize , x as usize + base_size * 2 ) ;
170
+ assert_eq ! ( y. as_ptr ( ) as usize , x. as_ptr ( ) as usize + base_size * 2 ) ;
171
171
let z = heap. allocate_first_fit ( layout_3. clone ( ) ) . unwrap ( ) ;
172
- assert_eq ! ( z as usize % ( base_size * 4 ) , 0 ) ;
172
+ assert_eq ! ( z. as_ptr ( ) as usize % ( base_size * 4 ) , 0 ) ;
173
173
174
174
unsafe {
175
175
heap. deallocate ( x, layout_1. clone ( ) ) ;
0 commit comments