mirror of
https://github.com/servo/servo.git
synced 2025-07-15 11:23:39 +01:00
Measure PropertyDeclaration better.
This increases the style-sheets counts for gmail by about 30 MiB.
This commit is contained in:
parent
54cd23adb8
commit
0ee32cc8c5
1 changed files with 22 additions and 5 deletions
|
@ -38,7 +38,8 @@ use selectors::parser::SelectorParseError;
|
||||||
use shared_lock::StylesheetGuards;
|
use shared_lock::StylesheetGuards;
|
||||||
use style_traits::{PARSING_MODE_DEFAULT, ToCss, ParseError};
|
use style_traits::{PARSING_MODE_DEFAULT, ToCss, ParseError};
|
||||||
use style_traits::{PropertyDeclarationParseError, StyleParseError, ValueParseError};
|
use style_traits::{PropertyDeclarationParseError, StyleParseError, ValueParseError};
|
||||||
use stylesheets::{CssRuleType, MallocSizeOf, MallocSizeOfFn, Origin, UrlExtraData};
|
use stylesheets::{CssRuleType, MallocSizeOf, MallocSizeOfBox, MallocSizeOfFn, MallocSizeOfVec};
|
||||||
|
use stylesheets::{Origin, UrlExtraData};
|
||||||
#[cfg(feature = "servo")] use values::Either;
|
#[cfg(feature = "servo")] use values::Either;
|
||||||
use values::generics::text::LineHeight;
|
use values::generics::text::LineHeight;
|
||||||
use values::computed;
|
use values::computed;
|
||||||
|
@ -1328,10 +1329,26 @@ impl ToCss for PropertyDeclaration {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MallocSizeOf for PropertyDeclaration {
|
impl MallocSizeOf for PropertyDeclaration {
|
||||||
fn malloc_size_of_children(&self, _malloc_size_of: MallocSizeOfFn) -> usize {
|
fn malloc_size_of_children(&self, malloc_size_of: MallocSizeOfFn) -> usize {
|
||||||
// The variants of PropertyDeclaration mostly (entirely?) contain
|
match *self {
|
||||||
// scalars, so this is reasonable.
|
% for property in data.longhands:
|
||||||
0
|
% if property.boxed and property.is_vector:
|
||||||
|
<% raise Exception("this should not happen! not smart to box a vector here") %>
|
||||||
|
% elif property.boxed:
|
||||||
|
PropertyDeclaration::${property.camel_case}(ref sv_box) => {
|
||||||
|
sv_box.malloc_shallow_size_of_box(malloc_size_of)
|
||||||
|
}
|
||||||
|
% elif property.is_vector:
|
||||||
|
PropertyDeclaration::${property.camel_case}(ref sv_vec) => {
|
||||||
|
sv_vec.0.malloc_shallow_size_of_vec(malloc_size_of)
|
||||||
|
}
|
||||||
|
% endif
|
||||||
|
% endfor
|
||||||
|
PropertyDeclaration::CSSWideKeyword(..) => 0,
|
||||||
|
PropertyDeclaration::WithVariables(..) => 0,
|
||||||
|
PropertyDeclaration::Custom(..) => 0,
|
||||||
|
_ => 0,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue