1
1
#![ feature( allocator_api, slice_ptr_get) ]
2
2
3
3
use std:: ptr:: NonNull ;
4
- use std:: alloc:: { Global , AllocRef , Layout , System } ;
4
+ use std:: alloc:: { Global , Allocator , Layout , System } ;
5
5
use std:: slice;
6
6
7
- fn check_alloc < T : AllocRef > ( allocator : T ) { unsafe {
7
+ fn check_alloc < T : Allocator > ( allocator : T ) { unsafe {
8
8
for & align in & [ 4 , 8 , 16 , 32 ] {
9
9
let layout_20 = Layout :: from_size_align ( 20 , align) . unwrap ( ) ;
10
10
let layout_40 = Layout :: from_size_align ( 40 , 4 * align) . unwrap ( ) ;
11
11
let layout_10 = Layout :: from_size_align ( 10 , align/2 ) . unwrap ( ) ;
12
12
13
13
for _ in 0 ..32 {
14
- let a = allocator. alloc ( layout_20) . unwrap ( ) . as_non_null_ptr ( ) ;
14
+ let a = allocator. allocate ( layout_20) . unwrap ( ) . as_non_null_ptr ( ) ;
15
15
assert_eq ! ( a. as_ptr( ) as usize % layout_20. align( ) , 0 , "pointer is incorrectly aligned" ) ;
16
- allocator. dealloc ( a, layout_20) ;
16
+ allocator. deallocate ( a, layout_20) ;
17
17
}
18
18
19
- let p1 = allocator. alloc_zeroed ( layout_20) . unwrap ( ) . as_non_null_ptr ( ) ;
19
+ let p1 = allocator. allocate_zeroed ( layout_20) . unwrap ( ) . as_non_null_ptr ( ) ;
20
20
assert_eq ! ( p1. as_ptr( ) as usize % layout_20. align( ) , 0 , "pointer is incorrectly aligned" ) ;
21
21
assert_eq ! ( * p1. as_ptr( ) , 0 ) ;
22
22
@@ -38,17 +38,17 @@ fn check_alloc<T: AllocRef>(allocator: T) { unsafe {
38
38
let slice = slice:: from_raw_parts ( p4. as_ptr ( ) , 10 ) ;
39
39
assert_eq ! ( & slice, & [ 0_u8 ; 10 ] ) ;
40
40
41
- allocator. dealloc ( p4, layout_10) ;
41
+ allocator. deallocate ( p4, layout_10) ;
42
42
}
43
43
} }
44
44
45
- fn check_align_requests < T : AllocRef > ( allocator : T ) {
45
+ fn check_align_requests < T : Allocator > ( allocator : T ) {
46
46
for & size in & [ 2 , 8 , 64 ] { // size less than and bigger than alignment
47
47
for & align in & [ 4 , 8 , 16 , 32 ] { // Be sure to cover less than and bigger than `MIN_ALIGN` for all architectures
48
48
let iterations = 32 ;
49
49
unsafe {
50
50
let pointers: Vec < _ > = ( 0 ..iterations) . map ( |_| {
51
- allocator. alloc ( Layout :: from_size_align ( size, align) . unwrap ( ) ) . unwrap ( ) . as_non_null_ptr ( )
51
+ allocator. allocate ( Layout :: from_size_align ( size, align) . unwrap ( ) ) . unwrap ( ) . as_non_null_ptr ( )
52
52
} ) . collect ( ) ;
53
53
for & ptr in & pointers {
54
54
assert_eq ! ( ( ptr. as_ptr( ) as usize ) % align, 0 ,
@@ -57,7 +57,7 @@ fn check_align_requests<T: AllocRef>(allocator: T) {
57
57
58
58
// Clean up.
59
59
for & ptr in & pointers {
60
- allocator. dealloc ( ptr, Layout :: from_size_align ( size, align) . unwrap ( ) )
60
+ allocator. deallocate ( ptr, Layout :: from_size_align ( size, align) . unwrap ( ) )
61
61
}
62
62
}
63
63
}
@@ -69,7 +69,7 @@ fn global_to_box() {
69
69
let l = Layout :: new :: < T > ( ) ;
70
70
// allocate manually with global allocator, then turn into Box and free there
71
71
unsafe {
72
- let ptr = Global . alloc ( l) . unwrap ( ) . as_non_null_ptr ( ) . as_ptr ( ) as * mut T ;
72
+ let ptr = Global . allocate ( l) . unwrap ( ) . as_non_null_ptr ( ) . as_ptr ( ) as * mut T ;
73
73
let b = Box :: from_raw ( ptr) ;
74
74
drop ( b) ;
75
75
}
@@ -82,7 +82,7 @@ fn box_to_global() {
82
82
unsafe {
83
83
let b = Box :: new ( T :: default ( ) ) ;
84
84
let ptr = Box :: into_raw ( b) ;
85
- Global . dealloc ( NonNull :: new ( ptr as * mut u8 ) . unwrap ( ) , l) ;
85
+ Global . deallocate ( NonNull :: new ( ptr as * mut u8 ) . unwrap ( ) , l) ;
86
86
}
87
87
}
88
88
0 commit comments