Commit 8980725b authored by David Grogan's avatar David Grogan Committed by Chromium LUCI CQ

DCHECK that fragment builder's block size is definite when accessing it

Because we shouldn't create a fragment with a -1 block size.

Change-Id: I787c09024d3dbdc478a6fe0b8a201ea5596390d4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2611570Reviewed-by: default avatarMorten Stenshorne <mstensho@chromium.org>
Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Grogan <dgrogan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843321}
parent 8cf6be2c
......@@ -381,7 +381,7 @@ LogicalOffset NGBlockLayoutAlgorithm::CalculateLogicalOffset(
const NGFragment& fragment,
LayoutUnit child_bfc_line_offset,
const base::Optional<LayoutUnit>& child_bfc_block_offset) {
LayoutUnit inline_size = container_builder_.Size().inline_size;
LayoutUnit inline_size = container_builder_.InlineSize();
TextDirection direction = ConstraintSpace().Direction();
if (child_bfc_block_offset && container_builder_.BfcBlockOffset()) {
......@@ -1181,7 +1181,7 @@ void NGBlockLayoutAlgorithm::HandleFloat(
LogicalOffset logical_offset = LogicalFromBfcOffsets(
positioned_float.bfc_offset, bfc_offset, float_inline_size,
container_builder_.Size().inline_size, ConstraintSpace().Direction());
container_builder_.InlineSize(), ConstraintSpace().Direction());
container_builder_.AddResult(*positioned_float.layout_result, logical_offset);
}
......@@ -1379,7 +1379,7 @@ NGLayoutResult::EStatus NGBlockLayoutAlgorithm::HandleNewFormattingContext(
LogicalOffset logical_offset = LogicalFromBfcOffsets(
child_bfc_offset, ContainerBfcOffset(), fragment.InlineSize(),
container_builder_.Size().inline_size, ConstraintSpace().Direction());
container_builder_.InlineSize(), ConstraintSpace().Direction());
if (!PositionOrPropagateListMarker(*layout_result, &logical_offset,
previous_inflow_position))
......
......@@ -118,6 +118,7 @@ class CORE_EXPORT NGBoxFragmentBuilder final
#if DCHECK_IS_ON()
if (has_block_fragmentation_)
DCHECK(block_size_is_for_all_fragments_);
DCHECK(size_.block_size != kIndefiniteSize);
#endif
return size_.block_size;
}
......@@ -137,6 +138,7 @@ class CORE_EXPORT NGBoxFragmentBuilder final
#if DCHECK_IS_ON()
if (has_block_fragmentation_)
DCHECK(!block_size_is_for_all_fragments_);
DCHECK(size_.block_size != kIndefiniteSize);
#endif
return size_.block_size;
}
......
......@@ -46,8 +46,14 @@ class CORE_EXPORT NGFragmentBuilder {
TextDirection Direction() const { return writing_direction_.Direction(); }
LayoutUnit InlineSize() const { return size_.inline_size; }
LayoutUnit BlockSize() const { return size_.block_size; }
const LogicalSize& Size() const { return size_; }
LayoutUnit BlockSize() const {
DCHECK(size_.block_size != kIndefiniteSize);
return size_.block_size;
}
const LogicalSize& Size() const {
DCHECK(size_.block_size != kIndefiniteSize);
return size_;
}
void SetBlockSize(LayoutUnit block_size) { size_.block_size = block_size; }
void SetIsHiddenForPaint(bool value) { is_hidden_for_paint_ = value; }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment