@@ -15,9 +15,9 @@ mod inner {
15
15
use core:: ptr:: NonNull ;
16
16
17
17
#[ allow( clippy:: map_err_ignore) ]
18
- pub ( crate ) fn do_alloc < A : Allocator > ( alloc : & A , layout : Layout ) -> Result < NonNull < u8 > , ( ) > {
18
+ pub ( crate ) fn do_alloc < A : Allocator > ( alloc : & A , layout : Layout ) -> Result < NonNull < [ u8 ] > , ( ) > {
19
19
match alloc. allocate ( layout) {
20
- Ok ( ptr) => Ok ( ptr. as_non_null_ptr ( ) ) ,
20
+ Ok ( ptr) => Ok ( ptr) ,
21
21
Err ( _) => Err ( ( ) ) ,
22
22
}
23
23
}
@@ -38,9 +38,9 @@ mod inner {
38
38
use core:: ptr:: NonNull ;
39
39
40
40
#[ allow( clippy:: map_err_ignore) ]
41
- pub ( crate ) fn do_alloc < A : Allocator > ( alloc : & A , layout : Layout ) -> Result < NonNull < u8 > , ( ) > {
41
+ pub ( crate ) fn do_alloc < A : Allocator > ( alloc : & A , layout : Layout ) -> Result < NonNull < [ u8 ] > , ( ) > {
42
42
match alloc. allocate ( layout) {
43
- Ok ( ptr) => Ok ( ptr. cast ( ) ) ,
43
+ Ok ( ptr) => Ok ( ptr) ,
44
44
Err ( _) => Err ( ( ) ) ,
45
45
}
46
46
}
@@ -61,7 +61,7 @@ mod inner {
61
61
62
62
#[ allow( clippy:: missing_safety_doc) ] // not exposed outside of this crate
63
63
pub unsafe trait Allocator {
64
- fn allocate ( & self , layout : Layout ) -> Result < NonNull < u8 > , ( ) > ;
64
+ fn allocate ( & self , layout : Layout ) -> Result < NonNull < [ u8 ] > , ( ) > ;
65
65
unsafe fn deallocate ( & self , ptr : NonNull < u8 > , layout : Layout ) ;
66
66
}
67
67
@@ -70,8 +70,11 @@ mod inner {
70
70
71
71
unsafe impl Allocator for Global {
72
72
#[ inline]
73
- fn allocate ( & self , layout : Layout ) -> Result < NonNull < u8 > , ( ) > {
74
- unsafe { NonNull :: new ( alloc ( layout) ) . ok_or ( ( ) ) }
73
+ fn allocate ( & self , layout : Layout ) -> Result < NonNull < [ u8 ] > , ( ) > {
74
+ match unsafe { NonNull :: new ( alloc ( layout) ) } {
75
+ Some ( ptr) => Ok ( NonNull :: slice_from_raw_parts ( ptr, layout. size ( ) ) ) ,
76
+ None => Err ( ( ) ) ,
77
+ }
75
78
}
76
79
#[ inline]
77
80
unsafe fn deallocate ( & self , ptr : NonNull < u8 > , layout : Layout ) {
@@ -86,7 +89,7 @@ mod inner {
86
89
}
87
90
}
88
91
89
- pub ( crate ) fn do_alloc < A : Allocator > ( alloc : & A , layout : Layout ) -> Result < NonNull < u8 > , ( ) > {
92
+ pub ( crate ) fn do_alloc < A : Allocator > ( alloc : & A , layout : Layout ) -> Result < NonNull < [ u8 ] > , ( ) > {
90
93
alloc. allocate ( layout)
91
94
}
92
95
}
0 commit comments