mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Stop relying on linking details of std’s default allocator
We’ve been bitten before by symbol names changing: https://github.com/servo/heapsize/pull/46 and upstream is planning to stop using jemalloc by default: https://github.com/rust-lang/rust/issues/33082#issuecomment-309781465 So use the (relatively) new `#[global_allocator]` attribute to explicitly select the system allocator on Windows and jemalloc (now in an external crate) on other platforms. This choice matches current defaults.
This commit is contained in:
parent
4c538b642e
commit
959ce482dd
20 changed files with 158 additions and 62 deletions
|
@ -13,7 +13,7 @@ path = "lib.rs"
|
|||
|
||||
[features]
|
||||
debugmozjs = ['js/debugmozjs']
|
||||
unstable = []
|
||||
unstable = ["servo_allocator/unstable"]
|
||||
|
||||
[build-dependencies]
|
||||
cmake = "0.1"
|
||||
|
@ -77,6 +77,7 @@ script_plugins = {path = "../script_plugins"}
|
|||
script_traits = {path = "../script_traits"}
|
||||
selectors = { path = "../selectors" }
|
||||
serde = "1.0"
|
||||
servo_allocator = {path = "../allocator"}
|
||||
servo_arc = {path = "../servo_arc"}
|
||||
servo_atoms = {path = "../atoms"}
|
||||
servo_config = {path = "../config"}
|
||||
|
|
|
@ -78,6 +78,7 @@ extern crate script_layout_interface;
|
|||
extern crate script_traits;
|
||||
extern crate selectors;
|
||||
extern crate serde;
|
||||
extern crate servo_allocator;
|
||||
extern crate servo_arc;
|
||||
#[macro_use] extern crate servo_atoms;
|
||||
extern crate servo_config;
|
||||
|
|
|
@ -73,7 +73,7 @@ use js::jsapi::{JSAutoCompartment, JSContext, JS_SetWrapObjectCallbacks};
|
|||
use js::jsapi::{JSTracer, SetWindowProxyClass};
|
||||
use js::jsval::UndefinedValue;
|
||||
use js::rust::Runtime;
|
||||
use malloc_size_of::{malloc_size_of, MallocSizeOfOps};
|
||||
use malloc_size_of::MallocSizeOfOps;
|
||||
use mem::malloc_size_of_including_self;
|
||||
use metrics::PaintTimeMetrics;
|
||||
use microtask::{MicrotaskQueue, Microtask};
|
||||
|
@ -1506,7 +1506,7 @@ impl ScriptThread {
|
|||
let mut reports = vec![];
|
||||
// Servo uses vanilla jemalloc, which doesn't have a
|
||||
// malloc_enclosing_size_of function.
|
||||
let mut ops = MallocSizeOfOps::new(malloc_size_of, None, None);
|
||||
let mut ops = MallocSizeOfOps::new(::servo_allocator::usable_size, None, None);
|
||||
|
||||
for (_, document) in self.documents.borrow().iter() {
|
||||
let current_url = document.url();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue