mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
style: Avoid scanning the longhand id twice in the fast path of PropertyDeclarationBlock::push_common.
This makes the overhead of this function much lower according to `perf`. And in general makes sense, removing overhead from the fast path. MozReview-Commit-ID: 4dJRap9dxNG Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
This commit is contained in:
parent
3b11145ef7
commit
344d53bd29
1 changed files with 7 additions and 5 deletions
|
@ -402,12 +402,14 @@ impl PropertyDeclarationBlock {
|
|||
importance: Importance,
|
||||
overwrite_more_important_and_reuse_slot: bool
|
||||
) -> bool {
|
||||
let definitely_new = if let PropertyDeclarationId::Longhand(id) = declaration.id() {
|
||||
!self.longhands.contains(id)
|
||||
} else {
|
||||
false // For custom properties, always scan
|
||||
let longhand_id = match declaration.id() {
|
||||
PropertyDeclarationId::Longhand(id) => Some(id),
|
||||
PropertyDeclarationId::Custom(..) => None,
|
||||
};
|
||||
|
||||
let definitely_new = longhand_id.map_or(false, |id| {
|
||||
!self.longhands.contains(id)
|
||||
});
|
||||
|
||||
if !definitely_new {
|
||||
let mut index_to_remove = None;
|
||||
|
@ -449,7 +451,7 @@ impl PropertyDeclarationBlock {
|
|||
}
|
||||
}
|
||||
|
||||
if let PropertyDeclarationId::Longhand(id) = declaration.id() {
|
||||
if let Some(id) = longhand_id {
|
||||
self.longhands.insert(id);
|
||||
}
|
||||
self.declarations.push((declaration, importance));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue