@@ -6,39 +6,39 @@ use std::slice;
66
77fn check_alloc < T : AllocRef > ( mut allocator : T ) { unsafe {
88 for & align in & [ 4 , 8 , 16 , 32 ] {
9- let layout = Layout :: from_size_align ( 20 , align) . unwrap ( ) ;
9+ let layout_20 = Layout :: from_size_align ( 20 , align) . unwrap ( ) ;
10+ let layout_40 = Layout :: from_size_align ( 40 , 4 * align) . unwrap ( ) ;
11+ let layout_10 = Layout :: from_size_align ( 10 , align/2 ) . unwrap ( ) ;
1012
1113 for _ in 0 ..32 {
12- let a = allocator. alloc ( layout ) . unwrap ( ) . as_non_null_ptr ( ) ;
13- assert_eq ! ( a. as_ptr( ) as usize % align, 0 , "pointer is incorrectly aligned" ) ;
14- allocator. dealloc ( a, layout ) ;
14+ let a = allocator. alloc ( layout_20 ) . unwrap ( ) . as_non_null_ptr ( ) ;
15+ assert_eq ! ( a. as_ptr( ) as usize % layout_20 . align( ) , 0 , "pointer is incorrectly aligned" ) ;
16+ allocator. dealloc ( a, layout_20 ) ;
1517 }
1618
17- let p1 = allocator. alloc_zeroed ( layout ) . unwrap ( ) . as_non_null_ptr ( ) ;
18- assert_eq ! ( p1. as_ptr( ) as usize % align, 0 , "pointer is incorrectly aligned" ) ;
19+ let p1 = allocator. alloc_zeroed ( layout_20 ) . unwrap ( ) . as_non_null_ptr ( ) ;
20+ assert_eq ! ( p1. as_ptr( ) as usize % layout_20 . align( ) , 0 , "pointer is incorrectly aligned" ) ;
1921 assert_eq ! ( * p1. as_ptr( ) , 0 ) ;
2022
2123 // old size < new size
22- let p2 = allocator. grow ( p1, layout, 40 ) . unwrap ( ) . as_non_null_ptr ( ) ;
23- let layout = Layout :: from_size_align ( 40 , align) . unwrap ( ) ;
24- assert_eq ! ( p2. as_ptr( ) as usize % align, 0 , "pointer is incorrectly aligned" ) ;
24+ let p2 = allocator. grow ( p1, layout_20, layout_40) . unwrap ( ) . as_non_null_ptr ( ) ;
25+ assert_eq ! ( p2. as_ptr( ) as usize % layout_40. align( ) , 0 , "pointer is incorrectly aligned" ) ;
2526 let slice = slice:: from_raw_parts ( p2. as_ptr ( ) , 20 ) ;
2627 assert_eq ! ( & slice, & [ 0_u8 ; 20 ] ) ;
2728
2829 // old size == new size
29- let p3 = allocator. grow ( p2, layout , 40 ) . unwrap ( ) . as_non_null_ptr ( ) ;
30- assert_eq ! ( p3. as_ptr( ) as usize % align, 0 , "pointer is incorrectly aligned" ) ;
30+ let p3 = allocator. grow ( p2, layout_40 , layout_40 ) . unwrap ( ) . as_non_null_ptr ( ) ;
31+ assert_eq ! ( p3. as_ptr( ) as usize % layout_40 . align( ) , 0 , "pointer is incorrectly aligned" ) ;
3132 let slice = slice:: from_raw_parts ( p3. as_ptr ( ) , 20 ) ;
3233 assert_eq ! ( & slice, & [ 0_u8 ; 20 ] ) ;
3334
3435 // old size > new size
35- let p4 = allocator. shrink ( p3, layout, 10 ) . unwrap ( ) . as_non_null_ptr ( ) ;
36- let layout = Layout :: from_size_align ( 10 , align) . unwrap ( ) ;
37- assert_eq ! ( p4. as_ptr( ) as usize % align, 0 , "pointer is incorrectly aligned" ) ;
36+ let p4 = allocator. shrink ( p3, layout_40, layout_10) . unwrap ( ) . as_non_null_ptr ( ) ;
37+ assert_eq ! ( p4. as_ptr( ) as usize % layout_10. align( ) , 0 , "pointer is incorrectly aligned" ) ;
3838 let slice = slice:: from_raw_parts ( p4. as_ptr ( ) , 10 ) ;
3939 assert_eq ! ( & slice, & [ 0_u8 ; 10 ] ) ;
4040
41- allocator. dealloc ( p4, layout ) ;
41+ allocator. dealloc ( p4, layout_10 ) ;
4242 }
4343} }
4444
0 commit comments