```rust
#![feature(ptr_internals, allocator_api, unique)]
-use std::heap::{Heap, Alloc, Layout};
+use std::alloc::{Global, GlobalAlloc, Layout};
use std::mem;
use std::ptr::{drop_in_place, Unique};
fn drop(&mut self) {
unsafe {
drop_in_place(self.ptr.as_ptr());
- Heap.dealloc(self.ptr.as_ptr() as *mut u8, Layout::new::<T>())
+ Global.dealloc(self.ptr.as_ptr() as *mut _, Layout::new::<T>())
}
}
}
```rust
#![feature(allocator_api, ptr_internals, unique)]
-use std::heap::{Heap, Alloc, Layout};
+use std::alloc::{Global, GlobalAlloc, Layout};
use std::ptr::{drop_in_place, Unique};
use std::mem;
fn drop(&mut self) {
unsafe {
drop_in_place(self.ptr.as_ptr());
- Heap.dealloc(self.ptr.as_ptr() as *mut u8, Layout::new::<T>());
+ Global.dealloc(self.ptr.as_ptr() as *mut _, Layout::new::<T>());
}
}
}
unsafe {
// Hyper-optimized: deallocate the box's contents for it
// without `drop`ing the contents
- Heap.dealloc(self.my_box.ptr.as_ptr() as *mut u8, Layout::new::<T>());
+ Global.dealloc(self.my_box.ptr.as_ptr() as *mut _, Layout::new::<T>());
}
}
}
```rust
#![feature(allocator_api, ptr_internals, unique)]
-use std::heap::{Alloc, Heap, Layout};
+use std::alloc::{GlobalAlloc, Global, Layout};
use std::ptr::{drop_in_place, Unique};
use std::mem;
fn drop(&mut self) {
unsafe {
drop_in_place(self.ptr.as_ptr());
- Heap.dealloc(self.ptr.as_ptr() as *mut u8, Layout::new::<T>());
+ Global.dealloc(self.ptr.as_ptr() as *mut _, Layout::new::<T>());
}
}
}
// without `drop`ing the contents. Need to set the `box`
// field as `None` to prevent Rust from trying to Drop it.
let my_box = self.my_box.take().unwrap();
- Heap.dealloc(my_box.ptr.as_ptr() as *mut u8, Layout::new::<T>());
+ Global.dealloc(my_box.ptr.as_ptr() as *mut _, Layout::new::<T>());
mem::forget(my_box);
}
}