mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Box custom property
This commit is contained in:
parent
78afe2b8d1
commit
43731c5757
3 changed files with 11 additions and 9 deletions
|
@ -8,7 +8,7 @@
|
|||
|
||||
use Atom;
|
||||
use cssparser::{Delimiter, Parser, SourcePosition, Token, TokenSerializationType};
|
||||
use parser::{Parse, ParserContext};
|
||||
use parser::ParserContext;
|
||||
use properties::DeclaredValue;
|
||||
use std::ascii::AsciiExt;
|
||||
use std::borrow::Cow;
|
||||
|
@ -129,16 +129,17 @@ impl ComputedValue {
|
|||
}
|
||||
}
|
||||
|
||||
impl Parse for SpecifiedValue {
|
||||
fn parse(_context: &ParserContext, input: &mut Parser) -> Result<Self, ()> {
|
||||
impl SpecifiedValue {
|
||||
/// Parse a custom property SpecifiedValue.
|
||||
pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<Box<Self>, ()> {
|
||||
let mut references = Some(HashSet::new());
|
||||
let (first, css, last) = try!(parse_self_contained_declaration_value(input, &mut references));
|
||||
Ok(SpecifiedValue {
|
||||
Ok(Box::new(SpecifiedValue {
|
||||
css: css.into_owned(),
|
||||
first_token_type: first,
|
||||
last_token_type: last,
|
||||
references: references.unwrap(),
|
||||
})
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -328,7 +329,7 @@ pub fn cascade<'a>(custom_properties: &mut Option<HashMap<&'a Name, BorrowedSpec
|
|||
inherited: &'a Option<Arc<HashMap<Name, ComputedValue>>>,
|
||||
seen: &mut HashSet<&'a Name>,
|
||||
name: &'a Name,
|
||||
specified_value: &'a DeclaredValue<SpecifiedValue>) {
|
||||
specified_value: &'a DeclaredValue<Box<SpecifiedValue>>) {
|
||||
let was_already_present = !seen.insert(name);
|
||||
if was_already_present {
|
||||
return;
|
||||
|
|
|
@ -850,7 +850,7 @@ pub enum PropertyDeclaration {
|
|||
% endfor
|
||||
/// A custom property declaration, with the property name and the declared
|
||||
/// value.
|
||||
Custom(::custom_properties::Name, DeclaredValue<::custom_properties::SpecifiedValue>),
|
||||
Custom(::custom_properties::Name, DeclaredValue<Box<::custom_properties::SpecifiedValue>>),
|
||||
}
|
||||
|
||||
impl HasViewportPercentage for PropertyDeclaration {
|
||||
|
@ -1029,7 +1029,8 @@ impl PropertyDeclaration {
|
|||
Err(()) => return PropertyDeclarationParseResult::InvalidValue,
|
||||
}
|
||||
};
|
||||
result_list.push((PropertyDeclaration::Custom(name, value), Importance::Normal));
|
||||
result_list.push((PropertyDeclaration::Custom(name, value),
|
||||
Importance::Normal));
|
||||
return PropertyDeclarationParseResult::ValidOrIgnoredDeclaration;
|
||||
}
|
||||
PropertyId::Longhand(id) => match id {
|
||||
|
|
|
@ -7,7 +7,7 @@ use style::properties::{PropertyDeclaration, specified_value_sizes};
|
|||
|
||||
#[test]
|
||||
fn size_of_property_declaration() {
|
||||
let old = 96;
|
||||
let old = 72;
|
||||
let new = size_of::<PropertyDeclaration>();
|
||||
if new < old {
|
||||
panic!("Your changes have decreased the stack size of PropertyDeclaration enum from {} to {}. \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue