diff --git a/src/stack/owned_stack.rs b/src/stack/owned_stack.rs index 1ba3780..a927bd9 100644 --- a/src/stack/owned_stack.rs +++ b/src/stack/owned_stack.rs @@ -4,7 +4,7 @@ extern crate alloc; use core::slice; -use self::alloc::heap::Heap; +use self::alloc::heap::Global; use self::alloc::allocator::{Alloc, Layout}; use self::alloc::boxed::Box; use stack::Stack; @@ -19,8 +19,8 @@ impl OwnedStack { pub fn new(size: usize) -> OwnedStack { unsafe { let aligned_size = size & !(::STACK_ALIGNMENT - 1); - let ptr = Heap.alloc(Layout::from_size_align_unchecked(aligned_size, ::STACK_ALIGNMENT)).unwrap(); - OwnedStack(Box::from_raw(slice::from_raw_parts_mut(ptr, aligned_size))) + let ptr = Global.alloc(Layout::from_size_align_unchecked(aligned_size, ::STACK_ALIGNMENT)).unwrap(); + OwnedStack(Box::from_raw(slice::from_raw_parts_mut(ptr.as_ptr() as *mut u8, aligned_size))) } } } diff --git a/tests/stack.rs b/tests/stack.rs index a2216b4..719fead 100644 --- a/tests/stack.rs +++ b/tests/stack.rs @@ -9,14 +9,15 @@ extern crate alloc; extern crate fringe; -use alloc::heap::Heap; +use alloc::heap::Global; use alloc::allocator::{Alloc, Layout}; use alloc::boxed::Box; use std::slice; use fringe::{STACK_ALIGNMENT, Stack, SliceStack, OwnedStack, OsStack}; unsafe fn heap_allocate(size: usize, align: usize) -> *mut u8 { - Heap.alloc(Layout::from_size_align_unchecked(size, align)).expect("couldn't allocate") + let ptr = Global.alloc(Layout::from_size_align_unchecked(size, align)).expect("couldn't allocate"); + ptr.as_ptr() as *mut u8 } #[test]