Auto merge of #15872 - servo:dedup, r=emilio

Fix debug assertion failure in gecko CI

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15872)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-03-08 13:35:40 -08:00 committed by GitHub
commit 2565242665
3 changed files with 32 additions and 3 deletions

View file

@ -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
}