mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +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 {
|
fn fmt_with_data<N: TNode>(f: &mut fmt::Formatter, n: N) -> fmt::Result {
|
||||||
if let Some(el) = n.as_element() {
|
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 {
|
} else {
|
||||||
write!(f, "{:?}", n)
|
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 {
|
fn fmt_with_data_and_primary_values<N: TNode>(f: &mut fmt::Formatter, n: N) -> fmt::Result {
|
||||||
if let Some(el) = n.as_element() {
|
if let Some(el) = n.as_element() {
|
||||||
let dd = el.has_dirty_descendants();
|
let dd = el.has_dirty_descendants();
|
||||||
|
let aodd = el.has_animation_only_dirty_descendants();
|
||||||
let data = el.borrow_data();
|
let data = el.borrow_data();
|
||||||
let values = data.as_ref().and_then(|d| d.styles.get_primary());
|
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 {
|
} else {
|
||||||
write!(f, "{:?}", n)
|
write!(f, "{:?}", n)
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,8 +234,7 @@ fn traverse_subtree(element: GeckoElement,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug!("Traversing subtree:");
|
debug!("Traversing subtree from {:?}", element);
|
||||||
debug!("{:?}", ShowSubtreeData(element.as_node()));
|
|
||||||
|
|
||||||
let thread_pool_holder = &*STYLE_THREAD_POOL;
|
let thread_pool_holder = &*STYLE_THREAD_POOL;
|
||||||
let thread_pool = if traversal_flags.contains(traversal_flags::ParallelTraversal) {
|
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,
|
/// Returns whether a Gecko post-traversal (to perform lazy frame construction,
|
||||||
/// or consume any RestyleData, or drop any ElementData) is required.
|
/// or consume any RestyleData, or drop any ElementData) is required.
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
|
pub extern "C" fn Servo_TraverseSubtree(
|
||||||
raw_data: RawServoStyleSetBorrowed,
|
root: RawGeckoElementBorrowed,
|
||||||
snapshots: *const ServoElementSnapshotTable,
|
raw_data: RawServoStyleSetBorrowed,
|
||||||
raw_flags: ServoTraversalFlags)
|
snapshots: *const ServoElementSnapshotTable,
|
||||||
-> bool {
|
raw_flags: ServoTraversalFlags
|
||||||
|
) -> bool {
|
||||||
let traversal_flags = TraversalFlags::from_bits_truncate(raw_flags);
|
let traversal_flags = TraversalFlags::from_bits_truncate(raw_flags);
|
||||||
debug_assert!(!snapshots.is_null());
|
debug_assert!(!snapshots.is_null());
|
||||||
|
|
||||||
let element = GeckoElement(root);
|
let element = GeckoElement(root);
|
||||||
|
|
||||||
debug!("Servo_TraverseSubtree (flags={:?})", traversal_flags);
|
debug!("Servo_TraverseSubtree (flags={:?})", traversal_flags);
|
||||||
|
debug!("{:?}", ShowSubtreeData(element.as_node()));
|
||||||
// It makes no sense to do an animation restyle when we're styling
|
// It makes no sense to do an animation restyle when we're styling
|
||||||
// newly-inserted content.
|
// newly-inserted content.
|
||||||
if !traversal_flags.contains(traversal_flags::UnstyledOnly) {
|
if !traversal_flags.contains(traversal_flags::UnstyledOnly) {
|
||||||
|
@ -3303,6 +3304,9 @@ pub extern "C" fn Servo_AssertTreeIsClean(root: RawGeckoElementBorrowed) {
|
||||||
}
|
}
|
||||||
|
|
||||||
let root = GeckoElement(root);
|
let root = GeckoElement(root);
|
||||||
|
debug!("Servo_AssertTreeIsClean: ");
|
||||||
|
debug!("{:?}", ShowSubtreeData(root.as_node()));
|
||||||
|
|
||||||
fn assert_subtree_is_clean<'le>(el: GeckoElement<'le>) {
|
fn assert_subtree_is_clean<'le>(el: GeckoElement<'le>) {
|
||||||
debug_assert!(!el.has_dirty_descendants() && !el.has_animation_only_dirty_descendants(),
|
debug_assert!(!el.has_dirty_descendants() && !el.has_animation_only_dirty_descendants(),
|
||||||
"{:?} has still dirty bit {:?} or animation-only dirty bit {:?}",
|
"{:?} has still dirty bit {:?} or animation-only dirty bit {:?}",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue