Closed Bug 1641094 Opened 5 years ago Closed 4 years ago

###!!! ASSERTION: overflow containers must be zero-block-size: 'finalSize.BSize(wm) == 0'

Categories

(Core :: Layout: Flexbox, defect, P1)

defect

Tracking

()

RESOLVED DUPLICATE of bug 574889

People

(Reporter: TYLin, Assigned: TYLin)

References

Details

Attachments

(1 file)

While debugging and tweaking the testcase in bug 1640051, I find a testcase that can trigger the assertion in my local debug build. The partial callstack is

#0  0x00007fc8c7ca4d64 in nsContainerFrame::AssertOnDestroyingPropertyOverflowContainersProperty(nsFrameList*) () at /home/aethanyc/Projects/gecko/layout/generic/nsContainerFrame.h:459
#1  0x00007fc8c7ca4d28 in mozilla::FramePropertyDescriptor<nsFrameList>::Destruct<&nsContainerFrame::AssertOnDestroyingPropertyOverflowContainersProperty>(void*) (aPropertyValue=0x7fc8b4959408)
    at /home/aethanyc/Projects/gecko/layout/base/FrameProperties.h:91
#2  0x00007fc8c34d3005 in mozilla::FrameProperties::PropertyValue::DestroyValueFor(nsIFrame const*) (this=0x7fc8b1e50928, aFrame=0x7fc8b4951520) at /home/aethanyc/Projects/gecko/layout/base/FrameProperties.h:336
#3  0x00007fc8c36164f1 in mozilla::FrameProperties::RemoveInternal(mozilla::FramePropertyDescriptorUntyped const*, nsIFrame const*) (this=0x7fc8b4951580, aProperty=0x7fc8d0871ee8 <nsContainerFrame::OverflowContainersProperty()::descriptor>, aFrame=0x7fc8b4951520) at /home/aethanyc/Projects/gecko/layout/base/FrameProperties.h:438
#4  0x00007fc8c7cad0c8 in mozilla::FrameProperties::Remove<nsFrameList>(mozilla::FramePropertyDescriptor<nsFrameList> const*, nsIFrame const*) (this=0x7fc8b4951580, aProperty=0x7fc8d0871ee8 <nsContainerFrame::OverflowContainersProperty()::descriptor>, aFrame=0x7fc8b4951520) at /home/aethanyc/Projects/gecko/layout/base/FrameProperties.h:240
#5  0x00007fc8c7c9942d in nsIFrame::RemoveProperty<nsFrameList>(mozilla::FramePropertyDescriptor<nsFrameList> const*) (this=0x7fc8b4951520, aProperty=0x7fc8d0871ee8 <nsContainerFrame::OverflowContainersProperty()::descriptor>)
    at /home/aethanyc/Projects/gecko/layout/generic/nsIFrame.h:3901
#6  0x00007fc8c7c75db3 in nsContainerFrame::NormalizeChildLists() (this=0x7fc8b4951520) at /home/aethanyc/Projects/gecko/layout/generic/nsContainerFrame.cpp:1671
#7  0x00007fc8c7c865e1 in nsFlexContainerFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) (this=0x7fc8b4951520, aPresContext=
    0x7fc8b6668800, aReflowOutput=..., aReflowInput=..., aStatus=...) at /home/aethanyc/Projects/gecko/layout/generic/nsFlexContainerFrame.cpp:4258
Attached file testcase.html

The testcase can also trigger

###!!! ASSERTION: overflow containers must be zero-block-size: 'finalSize.BSize(wm) == 0', file /home/aethanyc/Projects/gecko/layout/generic/nsBlockFrame.cpp, line 1947
Component: Layout → Layout: Flexbox

The assertion mentioned in comment 0 can also happen on the grid containers (bug 1405896). I'll fix the assertion there, and deal with the assertion in comment 2 in this bug.

See Also: → 1405896

The assertion described in comment 0 is fixed in bug 1405896. And the assertion in comment 2 is an existing issue.

Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
See Also: → 574889
Summary: Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Frame property OverflowContainersProperty should never be destroyed by the FrameProperties class) → ###!!! ASSERTION: overflow containers must be zero-block-size: 'finalSize.BSize(wm) == 0'
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: