Bug 1506760 - Store variable references with a boxed slice rather than a PrecomputedHashSet r=emilio

Once we've parsed the variable references, there is no need to keep an entire HashSet
object around, as all we do is iterate over the values.

Differential Revision: https://phabricator.services.mozilla.com/D11735

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Cameron McCormack 2018-11-13 12:51:05 +00:00
Родитель 0f6f614304
Коммит d3bc43cc8c
1 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -109,7 +109,7 @@ pub struct VariableValue {
references_environment: bool,
/// Custom property names in var() functions.
references: PrecomputedHashSet<Name>,
references: Box<[Name]>,
}
impl ToCss for SpecifiedValue {
@ -278,7 +278,7 @@ impl VariableValue {
css: String::new(),
last_token_type: TokenSerializationType::nothing(),
first_token_type: TokenSerializationType::nothing(),
references: PrecomputedHashSet::default(),
references: Default::default(),
references_environment: false,
}
}
@ -335,11 +335,16 @@ impl VariableValue {
let (first_token_type, css, last_token_type) =
parse_self_contained_declaration_value(input, Some(&mut references))?;
let custom_property_references = references.custom_property_references
.into_iter()
.collect::<Vec<_>>()
.into_boxed_slice();
Ok(Arc::new(VariableValue {
css: css.into_owned(),
first_token_type,
last_token_type,
references: references.custom_property_references,
references: custom_property_references,
references_environment: references.references_environment,
}))
}