aboutsummaryrefslogtreecommitdiffstats
path: root/components/util
diff options
context:
space:
mode:
authorMichael Howell <michael@notriddle.com>2016-08-12 16:15:15 -0700
committerMichael Howell <michael@notriddle.com>2016-08-13 16:48:54 -0700
commit0809809c23d91c8646b8eaa528e47af4d5b874cd (patch)
treeaee12ad7f49f5d7a3512e9b34a99440763e642fa /components/util
parentad4b9aab4524fb6fdce40b33b729e313e7d6906b (diff)
downloadservo-0809809c23d91c8646b8eaa528e47af4d5b874cd.tar.gz
servo-0809809c23d91c8646b8eaa528e47af4d5b874cd.zip
Add test for #11818
Diffstat (limited to 'components/util')
-rw-r--r--components/util/opts.rs29
1 files changed, 16 insertions, 13 deletions
diff --git a/components/util/opts.rs b/components/util/opts.rs
index 6395e134147..e49775d3480 100644
--- a/components/util/opts.rs
+++ b/components/util/opts.rs
@@ -55,10 +55,6 @@ pub struct Opts {
/// and cause it to produce output on that interval (`-m`).
pub mem_profiler_period: Option<f64>,
- /// The number of threads to use for layout (`-y`). Defaults to 1, which results in a recursive
- /// sequential algorithm.
- pub layout_threads: usize,
-
pub nonincremental_layout: bool,
/// Where to load userscripts from, if any. An empty string will load from
@@ -473,7 +469,6 @@ pub fn default_opts() -> Opts {
time_profiling: None,
time_profiler_trace_path: None,
mem_profiler_period: None,
- layout_threads: 1,
nonincremental_layout: false,
userscripts: None,
user_stylesheets: Vec::new(),
@@ -662,7 +657,7 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
Ok(interval) => Some(OutputOptions::Stdout(interval)) ,
Err(_) => Some(OutputOptions::FileName(argument)),
},
- None => Some(OutputOptions::Stdout(5 as f64)),
+ None => Some(OutputOptions::Stdout(5.0 as f64)),
}
} else {
// if the p option doesn't exist:
@@ -682,11 +677,11 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
period.parse().unwrap_or_else(|err| args_fail(&format!("Error parsing option: -m ({})", err)))
});
- let mut layout_threads: usize = match opt_match.opt_str("y") {
- Some(layout_threads_str) => layout_threads_str.parse()
- .unwrap_or_else(|err| args_fail(&format!("Error parsing option: -y ({})", err))),
- None => cmp::max(num_cpus::get() * 3 / 4, 1),
- };
+ let mut layout_threads: Option<usize> = opt_match.opt_str("y")
+ .map(|layout_threads_str| {
+ layout_threads_str.parse()
+ .unwrap_or_else(|err| args_fail(&format!("Error parsing option: -y ({})", err)))
+ });
let nonincremental_layout = opt_match.opt_present("i");
@@ -705,7 +700,7 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
let mut bubble_inline_sizes_separately = debug_options.bubble_widths;
if debug_options.trace_layout {
paint_threads = 1;
- layout_threads = 1;
+ layout_threads = Some(1);
bubble_inline_sizes_separately = true;
}
@@ -777,7 +772,6 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
time_profiling: time_profiling,
time_profiler_trace_path: opt_match.opt_str("profiler-trace-path"),
mem_profiler_period: mem_profiler_period,
- layout_threads: layout_threads,
nonincremental_layout: nonincremental_layout,
userscripts: opt_match.opt_default("userscripts", ""),
user_stylesheets: user_stylesheets,
@@ -845,6 +839,15 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
};
}
+ if let Some(layout_threads) = layout_threads {
+ PREFS.set("layout.threads", PrefValue::Number(layout_threads as f64));
+ } else if let Some(layout_threads) = PREFS.get("layout.threads").as_string() {
+ PREFS.set("layout.threads", PrefValue::Number(layout_threads.parse::<f64>().unwrap()));
+ } else if *PREFS.get("layout.threads") == PrefValue::Missing {
+ let layout_threads = cmp::max(num_cpus::get() * 3 / 4, 1);
+ PREFS.set("layout.threads", PrefValue::Number(layout_threads as f64));
+ }
+
ArgumentParsingResult::ChromeProcess
}