style: Add a way to add self-invalidations to the initial collection.

Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
This commit is contained in:
Emilio Cobos Álvarez 2017-10-21 13:12:17 +02:00
parent 191c39f28c
commit 5ac0f5121e
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
2 changed files with 12 additions and 1 deletions

View file

@ -82,6 +82,7 @@ where
element: E,
nth_index_cache: Option<&mut NthIndexCache>,
quirks_mode: QuirksMode,
_self_invalidations: &mut InvalidationVector,
descendant_invalidations: &mut InvalidationVector,
sibling_invalidations: &mut InvalidationVector,
) -> bool {

View file

@ -34,6 +34,7 @@ where
element: E,
nth_index_cache: Option<&mut NthIndexCache>,
quirks_mode: QuirksMode,
self_invalidations: &mut InvalidationVector,
descendant_invalidations: &mut InvalidationVector,
sibling_invalidations: &mut InvalidationVector,
) -> bool;
@ -226,21 +227,30 @@ where
pub fn invalidate(mut self) -> InvalidationResult {
debug!("StyleTreeInvalidator::invalidate({:?})", self.element);
let mut self_invalidations = InvalidationVector::new();
let mut descendant_invalidations = InvalidationVector::new();
let mut sibling_invalidations = InvalidationVector::new();
let invalidated_self = self.processor.collect_invalidations(
let mut invalidated_self = self.processor.collect_invalidations(
self.element,
self.nth_index_cache.as_mut().map(|c| &mut **c),
self.quirks_mode,
&mut self_invalidations,
&mut descendant_invalidations,
&mut sibling_invalidations,
);
debug!("Collected invalidations (self: {}): ", invalidated_self);
debug!(" > self: {:?}", descendant_invalidations);
debug!(" > descendants: {:?}", descendant_invalidations);
debug!(" > siblings: {:?}", sibling_invalidations);
invalidated_self |= self.process_descendant_invalidations(
&self_invalidations,
&mut descendant_invalidations,
&mut sibling_invalidations,
);
let invalidated_descendants = self.invalidate_descendants(&descendant_invalidations);
let invalidated_siblings = self.invalidate_siblings(&mut sibling_invalidations);