servo: Merge #15872 - Fix debug assertion failure in gecko CI (from servo:dedup); r=emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 2565242665645e6a218f138e2b95d5a29f296104

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d7eae9ac904b4b5ad6096c4a901110ff7e6d1198
This commit is contained in:
Simon Sapin 2017-03-08 13:35:40 -08:00
Родитель 18bae9a6f4
Коммит 311e429e57
1 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

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