Move the alloc::allocator module to core::heap

This is the `Alloc` trait and its dependencies.
This commit is contained in:
Simon Sapin 2018-03-28 22:37:37 +02:00
parent 1169541e17
commit 94d1970bba
5 changed files with 17 additions and 11 deletions

View file

@ -19,7 +19,7 @@ use core::intrinsics::{min_align_of_val, size_of_val};
use core::mem::{self, ManuallyDrop};
use core::usize;
pub use allocator::*;
pub use core::heap::*;
#[doc(hidden)]
pub mod __core {
pub use core::*;

View file

@ -81,6 +81,7 @@
#![cfg_attr(not(test), feature(exact_size_is_empty))]
#![cfg_attr(not(test), feature(generator_trait))]
#![cfg_attr(test, feature(rand, test))]
#![feature(allocator_api)]
#![feature(allow_internal_unstable)]
#![feature(ascii_ctype)]
#![feature(box_into_raw_non_null)]
@ -145,9 +146,9 @@ extern crate std_unicode;
#[macro_use]
mod macros;
// Allocator trait and helper struct definitions
pub mod allocator;
#[rustc_deprecated(since = "1.27.0", reason = "use the heap module in core, alloc, or std instead")]
#[unstable(feature = "allocator_api", issue = "32838")]
pub use core::heap as allocator;
// Heaps provided for low-level allocation strategies

View file

@ -15,11 +15,11 @@
tracing garbage collector",
issue = "32838")]
use core::cmp;
use core::fmt;
use core::mem;
use core::usize;
use core::ptr::{self, NonNull};
use cmp;
use fmt;
use mem;
use usize;
use ptr::{self, NonNull};
/// Represents the combination of a starting address and
/// a total capacity of the returned block.
@ -568,7 +568,7 @@ pub unsafe trait Alloc {
/// invoked method, and let the client decide whether to invoke
/// this `oom` method in response.
fn oom(&mut self, _: AllocErr) -> ! {
unsafe { ::core::intrinsics::abort() }
unsafe { ::intrinsics::abort() }
}
// == ALLOCATOR-SPECIFIC QUANTITIES AND LIMITS ==

View file

@ -185,6 +185,10 @@ pub mod hash;
pub mod fmt;
pub mod time;
/* Heap memory allocator trait */
#[allow(missing_docs)]
pub mod heap;
// note: does not need to be public
mod char_private;
mod iter_private;

View file

@ -12,8 +12,9 @@
#![unstable(issue = "32838", feature = "allocator_api")]
pub use alloc::heap::{Heap, Alloc, Layout, Excess, CannotReallocInPlace, AllocErr};
pub use alloc::heap::Heap;
pub use alloc_system::System;
pub use core::heap::*;
#[cfg(not(test))]
#[doc(hidden)]