Skip to content

Commit

Permalink
style: Store variable references with a boxed slice rather than a Pre…
Browse files Browse the repository at this point in the history
…computedHashSet.

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
  • Loading branch information
heycam authored and emilio committed Nov 17, 2018
1 parent 41d2f7f commit 1576dd4
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions components/style/custom_properties.rs
Expand Up @@ -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 {
Expand Down Expand Up @@ -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,
}
}
Expand Down Expand Up @@ -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,
}))
}
Expand Down

0 comments on commit 1576dd4

Please sign in to comment.