mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
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:
parent
191c39f28c
commit
5ac0f5121e
2 changed files with 12 additions and 1 deletions
|
@ -82,6 +82,7 @@ where
|
||||||
element: E,
|
element: E,
|
||||||
nth_index_cache: Option<&mut NthIndexCache>,
|
nth_index_cache: Option<&mut NthIndexCache>,
|
||||||
quirks_mode: QuirksMode,
|
quirks_mode: QuirksMode,
|
||||||
|
_self_invalidations: &mut InvalidationVector,
|
||||||
descendant_invalidations: &mut InvalidationVector,
|
descendant_invalidations: &mut InvalidationVector,
|
||||||
sibling_invalidations: &mut InvalidationVector,
|
sibling_invalidations: &mut InvalidationVector,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
|
|
|
@ -34,6 +34,7 @@ where
|
||||||
element: E,
|
element: E,
|
||||||
nth_index_cache: Option<&mut NthIndexCache>,
|
nth_index_cache: Option<&mut NthIndexCache>,
|
||||||
quirks_mode: QuirksMode,
|
quirks_mode: QuirksMode,
|
||||||
|
self_invalidations: &mut InvalidationVector,
|
||||||
descendant_invalidations: &mut InvalidationVector,
|
descendant_invalidations: &mut InvalidationVector,
|
||||||
sibling_invalidations: &mut InvalidationVector,
|
sibling_invalidations: &mut InvalidationVector,
|
||||||
) -> bool;
|
) -> bool;
|
||||||
|
@ -226,21 +227,30 @@ where
|
||||||
pub fn invalidate(mut self) -> InvalidationResult {
|
pub fn invalidate(mut self) -> InvalidationResult {
|
||||||
debug!("StyleTreeInvalidator::invalidate({:?})", self.element);
|
debug!("StyleTreeInvalidator::invalidate({:?})", self.element);
|
||||||
|
|
||||||
|
let mut self_invalidations = InvalidationVector::new();
|
||||||
let mut descendant_invalidations = InvalidationVector::new();
|
let mut descendant_invalidations = InvalidationVector::new();
|
||||||
let mut sibling_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.element,
|
||||||
self.nth_index_cache.as_mut().map(|c| &mut **c),
|
self.nth_index_cache.as_mut().map(|c| &mut **c),
|
||||||
self.quirks_mode,
|
self.quirks_mode,
|
||||||
|
&mut self_invalidations,
|
||||||
&mut descendant_invalidations,
|
&mut descendant_invalidations,
|
||||||
&mut sibling_invalidations,
|
&mut sibling_invalidations,
|
||||||
);
|
);
|
||||||
|
|
||||||
debug!("Collected invalidations (self: {}): ", invalidated_self);
|
debug!("Collected invalidations (self: {}): ", invalidated_self);
|
||||||
|
debug!(" > self: {:?}", descendant_invalidations);
|
||||||
debug!(" > descendants: {:?}", descendant_invalidations);
|
debug!(" > descendants: {:?}", descendant_invalidations);
|
||||||
debug!(" > siblings: {:?}", sibling_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_descendants = self.invalidate_descendants(&descendant_invalidations);
|
||||||
let invalidated_siblings = self.invalidate_siblings(&mut sibling_invalidations);
|
let invalidated_siblings = self.invalidate_siblings(&mut sibling_invalidations);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue