From 72347205c461a18bdc3105300a0eb58c8ab9a833 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 8 Aug 2020 15:07:15 +0200 Subject: [PATCH] LibWeb: Always add line boxes through LayoutBlock::add_line_box() Let's not append directly to the line box vector all over the place. --- Libraries/LibWeb/Layout/LayoutBlock.cpp | 2 +- Libraries/LibWeb/Layout/LayoutText.cpp | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Libraries/LibWeb/Layout/LayoutBlock.cpp b/Libraries/LibWeb/Layout/LayoutBlock.cpp index 8f04c170e7..59b5011ec6 100644 --- a/Libraries/LibWeb/Layout/LayoutBlock.cpp +++ b/Libraries/LibWeb/Layout/LayoutBlock.cpp @@ -757,7 +757,7 @@ NonnullRefPtr LayoutBlock::style_for_anonymous_block() con LineBox& LayoutBlock::ensure_last_line_box() { if (m_line_boxes.is_empty()) - m_line_boxes.append(LineBox()); + return add_line_box(); return m_line_boxes.last(); } diff --git a/Libraries/LibWeb/Layout/LayoutText.cpp b/Libraries/LibWeb/Layout/LayoutText.cpp index 769abc6d93..64d89313ea 100644 --- a/Libraries/LibWeb/Layout/LayoutText.cpp +++ b/Libraries/LibWeb/Layout/LayoutText.cpp @@ -188,8 +188,7 @@ void LayoutText::split_into_lines_by_rules(LayoutBlock& container, LayoutMode la float space_width = font.glyph_width(' ') + font.glyph_spacing(); auto& line_boxes = container.line_boxes(); - if (line_boxes.is_empty()) - line_boxes.append(LineBox()); + container.ensure_last_line_box(); float available_width = container.width() - line_boxes.last().width(); // Collapse whitespace into single spaces @@ -255,7 +254,7 @@ void LayoutText::split_into_lines_by_rules(LayoutBlock& container, LayoutMode la chunk_width = font.width(chunk.view) + font.glyph_spacing(); if (line_boxes.last().width() > 0 && chunk_width > available_width) { - line_boxes.append(LineBox()); + container.add_line_box(); available_width = container.width(); } if (need_collapse & line_boxes.last().fragments().is_empty()) @@ -269,14 +268,14 @@ void LayoutText::split_into_lines_by_rules(LayoutBlock& container, LayoutMode la if (do_wrap_lines) { if (available_width < 0) { - line_boxes.append(LineBox()); + container.add_line_box(); available_width = container.width(); } } if (do_wrap_breaks) { if (chunk.is_break) { - line_boxes.append(LineBox()); + container.add_line_box(); available_width = container.width(); } }