mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
stylo: Make a few functions output more useful debug information.
This commit is contained in:
parent
8f7bcdfef3
commit
97338d0e84
2 changed files with 20 additions and 9 deletions
|
@ -206,7 +206,13 @@ impl<N: TNode> Debug for ShowSubtreeDataAndPrimaryValues<N> {
|
|||
|
||||
fn fmt_with_data<N: TNode>(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<N: TNode>(f: &mut fmt::Formatter, n: N) -> fmt::Result {
|
|||
fn fmt_with_data_and_primary_values<N: TNode>(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)
|
||||
}
|
||||
|
|
|
@ -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 {:?}",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue