mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 01:20:25 +00:00
LibWeb: Don't crash when dumping layout tree pre-layout
If we haven't run layout yet, there aren't any paintables attached to the tree, so we have to null check them.
This commit is contained in:
parent
11dffbd96f
commit
3f55271c8e
Notes:
sideshowbarker
2024-07-17 17:08:04 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/3f55271c8e
1 changed files with 10 additions and 8 deletions
|
@ -166,11 +166,13 @@ void dump_tree(StringBuilder& builder, Layout::Node const& layout_node, bool sho
|
|||
if (interactive)
|
||||
builder.appendff("@{:p} ", &layout_node);
|
||||
|
||||
builder.appendff("at ({},{}) content-size {}x{}",
|
||||
box.paint_box()->absolute_x(),
|
||||
box.paint_box()->absolute_y(),
|
||||
box.paint_box()->content_width(),
|
||||
box.paint_box()->content_height());
|
||||
if (auto const* paint_box = box.paint_box()) {
|
||||
builder.appendff("at ({},{}) content-size {}x{}",
|
||||
paint_box->absolute_x(),
|
||||
paint_box->absolute_y(),
|
||||
paint_box->content_width(),
|
||||
paint_box->content_height());
|
||||
}
|
||||
|
||||
if (box.is_positioned())
|
||||
builder.appendff(" {}positioned{}", positioned_color_on, color_off);
|
||||
|
@ -205,7 +207,7 @@ void dump_tree(StringBuilder& builder, Layout::Node const& layout_node, bool sho
|
|||
box.box_model().margin.left,
|
||||
box.box_model().border.left,
|
||||
box.box_model().padding.left,
|
||||
box.paint_box()->content_width(),
|
||||
box.paint_box() ? box.paint_box()->content_width() : 0,
|
||||
box.box_model().padding.right,
|
||||
box.box_model().border.right,
|
||||
box.box_model().margin.right);
|
||||
|
@ -215,7 +217,7 @@ void dump_tree(StringBuilder& builder, Layout::Node const& layout_node, bool sho
|
|||
box.box_model().margin.top,
|
||||
box.box_model().border.top,
|
||||
box.box_model().padding.top,
|
||||
box.paint_box()->content_height(),
|
||||
box.paint_box() ? box.paint_box()->content_height() : 0,
|
||||
box.box_model().padding.bottom,
|
||||
box.box_model().border.bottom,
|
||||
box.box_model().margin.bottom);
|
||||
|
@ -226,7 +228,7 @@ void dump_tree(StringBuilder& builder, Layout::Node const& layout_node, bool sho
|
|||
|
||||
if (is<Layout::BlockContainer>(layout_node) && static_cast<Layout::BlockContainer const&>(layout_node).children_are_inline()) {
|
||||
auto& block = static_cast<Layout::BlockContainer const&>(layout_node);
|
||||
for (size_t line_box_index = 0; line_box_index < block.paint_box()->line_boxes().size(); ++line_box_index) {
|
||||
for (size_t line_box_index = 0; block.paint_box() && line_box_index < block.paint_box()->line_boxes().size(); ++line_box_index) {
|
||||
auto& line_box = block.paint_box()->line_boxes()[line_box_index];
|
||||
for (size_t i = 0; i < indent; ++i)
|
||||
builder.append(" ");
|
||||
|
|
Loading…
Reference in a new issue