aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/gfx/lib.rs6
-rw-r--r--components/gfx/platform/freetype/font_context.rs15
-rw-r--r--rust-commit-hash2
3 files changed, 13 insertions, 10 deletions
diff --git a/components/gfx/lib.rs b/components/gfx/lib.rs
index 10ba03c0dbc..c4418860278 100644
--- a/components/gfx/lib.rs
+++ b/components/gfx/lib.rs
@@ -3,11 +3,9 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// For SIMD
-#![feature(cfg_target_feature)]
-#![cfg_attr(any(target_os = "linux", target_os = "android"), feature(heap_api))]
-
-#![cfg_attr(any(target_os = "linux", target_os = "android"), feature(alloc))]
+#![cfg_attr(any(target_os = "linux", target_os = "android"), feature(alloc, allocator_api))]
#![feature(box_syntax)]
+#![feature(cfg_target_feature)]
#![feature(range_contains)]
#![feature(unique)]
diff --git a/components/gfx/platform/freetype/font_context.rs b/components/gfx/platform/freetype/font_context.rs
index 86643ae348b..bca6de5484e 100644
--- a/components/gfx/platform/freetype/font_context.rs
+++ b/components/gfx/platform/freetype/font_context.rs
@@ -2,7 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-use alloc::heap;
+use alloc::allocator::{Alloc, Layout};
+use alloc::heap::Heap;
use freetype::freetype::FT_Add_Default_Modules;
use freetype::freetype::FT_Done_Library;
use freetype::freetype::FT_Library;
@@ -26,7 +27,8 @@ const FT_ALIGNMENT: usize = 1;
extern fn ft_alloc(mem: FT_Memory, req_size: c_long) -> *mut c_void {
unsafe {
- let ptr = heap::allocate(req_size as usize, FT_ALIGNMENT) as *mut c_void;
+ let layout = Layout::from_size_align(req_size as usize, FT_ALIGNMENT).unwrap();
+ let ptr = Heap.alloc(layout).unwrap() as *mut c_void;
let actual_size = heap_size_of(ptr as *const _);
let user = (*mem).user as *mut User;
@@ -43,7 +45,8 @@ extern fn ft_free(mem: FT_Memory, ptr: *mut c_void) {
let user = (*mem).user as *mut User;
(*user).size -= actual_size;
- heap::deallocate(ptr as *mut u8, actual_size, FT_ALIGNMENT);
+ let layout = Layout::from_size_align(actual_size, FT_ALIGNMENT).unwrap();
+ Heap.dealloc(ptr as *mut u8, layout);
}
}
@@ -51,8 +54,10 @@ extern fn ft_realloc(mem: FT_Memory, _cur_size: c_long, new_req_size: c_long,
old_ptr: *mut c_void) -> *mut c_void {
unsafe {
let old_actual_size = heap_size_of(old_ptr as *const _);
- let new_ptr = heap::reallocate(old_ptr as *mut u8, old_actual_size,
- new_req_size as usize, FT_ALIGNMENT) as *mut c_void;
+ let old_layout = Layout::from_size_align(old_actual_size, FT_ALIGNMENT).unwrap();
+ let new_layout = Layout::from_size_align(new_req_size as usize, FT_ALIGNMENT).unwrap();
+ let result = Heap.realloc(old_ptr as *mut u8, old_layout, new_layout);
+ let new_ptr = result.unwrap() as *mut c_void;
let new_actual_size = heap_size_of(new_ptr as *const _);
let user = (*mem).user as *mut User;
diff --git a/rust-commit-hash b/rust-commit-hash
index 3a022687970..3c36fc5cbcf 100644
--- a/rust-commit-hash
+++ b/rust-commit-hash
@@ -1 +1 @@
-3bfc18a9619a5151ff4f11618db9cd882996ba6f
+696412de7e4e119f8536686c643621115b90c775