From 97338d0e841f6a7e98fd3040add5b870e47dff9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Sun, 27 Aug 2017 00:12:22 +0200 Subject: [PATCH] stylo: Make a few functions output more useful debug information. --- components/style/dom.rs | 11 +++++++++-- ports/geckolib/glue.rs | 18 +++++++++++------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/components/style/dom.rs b/components/style/dom.rs index 6b67336aa2b..60046312c89 100644 --- a/components/style/dom.rs +++ b/components/style/dom.rs @@ -206,7 +206,13 @@ impl Debug for ShowSubtreeDataAndPrimaryValues { fn fmt_with_data(f: &mut fmt::Formatter, n: N) -> fmt::Result { if let Some(el) = n.as_element() { - write!(f, "{:?} dd={} data={:?}", el, el.has_dirty_descendants(), el.borrow_data()) + write!( + f, "{:?} dd={} aodd={} data={:?}", + el, + el.has_dirty_descendants(), + el.has_animation_only_dirty_descendants(), + el.borrow_data(), + ) } else { write!(f, "{:?}", n) } @@ -215,9 +221,10 @@ fn fmt_with_data(f: &mut fmt::Formatter, n: N) -> fmt::Result { fn fmt_with_data_and_primary_values(f: &mut fmt::Formatter, n: N) -> fmt::Result { if let Some(el) = n.as_element() { let dd = el.has_dirty_descendants(); + let aodd = el.has_animation_only_dirty_descendants(); let data = el.borrow_data(); let values = data.as_ref().and_then(|d| d.styles.get_primary()); - write!(f, "{:?} dd={} data={:?} values={:?}", el, dd, &data, values) + write!(f, "{:?} dd={} aodd={} data={:?} values={:?}", el, dd, aodd, &data, values) } else { write!(f, "{:?}", n) } diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 29ad0948f14..b74da64d06e 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -234,8 +234,7 @@ fn traverse_subtree(element: GeckoElement, return; } - debug!("Traversing subtree:"); - debug!("{:?}", ShowSubtreeData(element.as_node())); + debug!("Traversing subtree from {:?}", element); let thread_pool_holder = &*STYLE_THREAD_POOL; let thread_pool = if traversal_flags.contains(traversal_flags::ParallelTraversal) { @@ -253,17 +252,19 @@ fn traverse_subtree(element: GeckoElement, /// Returns whether a Gecko post-traversal (to perform lazy frame construction, /// or consume any RestyleData, or drop any ElementData) is required. #[no_mangle] -pub extern "C" fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed, - raw_data: RawServoStyleSetBorrowed, - snapshots: *const ServoElementSnapshotTable, - raw_flags: ServoTraversalFlags) - -> bool { +pub extern "C" fn Servo_TraverseSubtree( + root: RawGeckoElementBorrowed, + raw_data: RawServoStyleSetBorrowed, + snapshots: *const ServoElementSnapshotTable, + raw_flags: ServoTraversalFlags +) -> bool { let traversal_flags = TraversalFlags::from_bits_truncate(raw_flags); debug_assert!(!snapshots.is_null()); let element = GeckoElement(root); debug!("Servo_TraverseSubtree (flags={:?})", traversal_flags); + debug!("{:?}", ShowSubtreeData(element.as_node())); // It makes no sense to do an animation restyle when we're styling // newly-inserted content. if !traversal_flags.contains(traversal_flags::UnstyledOnly) { @@ -3303,6 +3304,9 @@ pub extern "C" fn Servo_AssertTreeIsClean(root: RawGeckoElementBorrowed) { } let root = GeckoElement(root); + debug!("Servo_AssertTreeIsClean: "); + debug!("{:?}", ShowSubtreeData(root.as_node())); + fn assert_subtree_is_clean<'le>(el: GeckoElement<'le>) { debug_assert!(!el.has_dirty_descendants() && !el.has_animation_only_dirty_descendants(), "{:?} has still dirty bit {:?} or animation-only dirty bit {:?}",