diff --git a/servo/components/style/properties/declaration_block.rs b/servo/components/style/properties/declaration_block.rs index 2cb5cba48745..f10da7a7cb41 100644 --- a/servo/components/style/properties/declaration_block.rs +++ b/servo/components/style/properties/declaration_block.rs @@ -288,10 +288,15 @@ impl PropertyDeclarationBlock { } let important_count = &mut self.important_count; let mut removed_at_least_one = false; + let longhands = &mut self.longhands; self.declarations.retain(|&(ref declaration, importance)| { - let remove = declaration.id().is_or_is_longhand_of(property); + let id = declaration.id(); + let remove = id.is_or_is_longhand_of(property); if remove { removed_at_least_one = true; + if let PropertyDeclarationId::Longhand(id) = id { + longhands.remove(id) + } if importance.important() { *important_count -= 1 } @@ -299,9 +304,8 @@ impl PropertyDeclarationBlock { !remove }); - if let PropertyId::Longhand(id) = *property { + if let PropertyId::Longhand(_) = *property { debug_assert!(removed_at_least_one); - self.longhands.remove(id); } removed_at_least_one }