@@ -77,9 +77,14 @@ extern "Rust" {
77
77
}
78
78
79
79
#[ derive( Copy , Clone , Default , Debug ) ]
80
- pub struct Heap ;
80
+ pub struct Global ;
81
81
82
- unsafe impl Alloc for Heap {
82
+ #[ unstable( feature = "allocator_api" , issue = "32838" ) ]
83
+ #[ rustc_deprecated( since = "1.27.0" , reason = "type renamed to `Global`" ) ]
84
+ pub use self :: Global as Heap ;
85
+
86
+
87
+ unsafe impl Alloc for Global {
83
88
#[ inline]
84
89
unsafe fn alloc ( & mut self , layout : Layout ) -> Result < * mut u8 , AllocErr > {
85
90
let mut err = ManuallyDrop :: new ( mem:: uninitialized :: < AllocErr > ( ) ) ;
@@ -240,8 +245,8 @@ unsafe fn exchange_malloc(size: usize, align: usize) -> *mut u8 {
240
245
align as * mut u8
241
246
} else {
242
247
let layout = Layout :: from_size_align_unchecked ( size, align) ;
243
- Heap . alloc ( layout) . unwrap_or_else ( |err| {
244
- Heap . oom ( err)
248
+ Global . alloc ( layout) . unwrap_or_else ( |err| {
249
+ Global . oom ( err)
245
250
} )
246
251
}
247
252
}
@@ -254,7 +259,7 @@ pub(crate) unsafe fn box_free<T: ?Sized>(ptr: *mut T) {
254
259
// We do not allocate for Box<T> when T is ZST, so deallocation is also not necessary.
255
260
if size != 0 {
256
261
let layout = Layout :: from_size_align_unchecked ( size, align) ;
257
- Heap . dealloc ( ptr as * mut u8 , layout) ;
262
+ Global . dealloc ( ptr as * mut u8 , layout) ;
258
263
}
259
264
}
260
265
@@ -263,22 +268,22 @@ mod tests {
263
268
extern crate test;
264
269
use self :: test:: Bencher ;
265
270
use boxed:: Box ;
266
- use heap:: { Heap , Alloc , Layout } ;
271
+ use heap:: { Global , Alloc , Layout } ;
267
272
268
273
#[ test]
269
274
fn allocate_zeroed ( ) {
270
275
unsafe {
271
276
let layout = Layout :: from_size_align ( 1024 , 1 ) . unwrap ( ) ;
272
- let ptr = Heap . alloc_zeroed ( layout. clone ( ) )
273
- . unwrap_or_else ( |e| Heap . oom ( e) ) ;
277
+ let ptr = Global . alloc_zeroed ( layout. clone ( ) )
278
+ . unwrap_or_else ( |e| Global . oom ( e) ) ;
274
279
275
280
let end = ptr. offset ( layout. size ( ) as isize ) ;
276
281
let mut i = ptr;
277
282
while i < end {
278
283
assert_eq ! ( * i, 0 ) ;
279
284
i = i. offset ( 1 ) ;
280
285
}
281
- Heap . dealloc ( ptr, layout) ;
286
+ Global . dealloc ( ptr, layout) ;
282
287
}
283
288
}
284
289
0 commit comments