Closed Bug 364512 Opened 18 years ago Closed 17 years ago

ASSERTION: unexpected frame type: 'IS_TABLE_CELL(frameType) || nsLayoutAtoms::tableRowFrame == frameType || nsLayoutAtoms::tableRowGroupFrame == frameType || nsLayoutAtoms::tableFrame == frameType'

Categories

(Core :: Layout: Tables, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Assigned: bernd_mozilla)

References

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Loading this testcase triggers:

###!!! ASSERTION: unexpected frame type: 'IS_TABLE_CELL(frameType) || nsLayoutAtoms::tableRowFrame == frameType || nsLayoutAtoms::tableRowGroupFrame == frameType || nsLayoutAtoms::tableFrame == frameType', file /Users/admin/trunk/mozilla/layout/tables/nsTableFrame.cpp, line 1798
Attached file testcase
yep the assertion 
1794     NS_ASSERTION(IS_TABLE_CELL(frameType) ||
1795                  nsLayoutAtoms::tableRowFrame == frameType ||
1796                  nsLayoutAtoms::tableRowGroupFrame == frameType ||
1797                  nsLayoutAtoms::tableFrame == frameType,
1798                  "unexpected frame type");
is not complete, as rowgroups can be wrapped in a scroll frame
Attached patch patchSplinter Review
Assignee: nobody → bernd_mozilla
Status: NEW → ASSIGNED
Attachment #249334 - Flags: superreview?
Attachment #249334 - Flags: review?
Attachment #249334 - Flags: superreview?(dbaron)
Attachment #249334 - Flags: superreview?
Attachment #249334 - Flags: review?(dbaron)
Attachment #249334 - Flags: review?
This assertion is documenting an assumption that I was making when I wrote the code -- will the special height reflow actually propagate through the scrollframe correctly, or is additional code needed for that?

I really should have rewritten the comment above RequestSpecialHeightReflow to reflect what I was thinking.  I'll need to have a closer look tomorrow and try to remember.
Comment on attachment 249334 [details] [diff] [review]
patch

I'm trying to think of what will be broken in this case.

So far, I think that:
 * if the table is IsGeometryDirty, we'll need to mark the row group (and scroll frame containing it?) as NS_FRAME_HAS_DIRTY_CHILDREN to make the reflow propagate down to it.

We may also need to propagate the mHResize flag the way nsTableRowGroupFrame::ReflowChildren does, although maybe we should replace that propagation with SetGeometryDirty.

But this patch looks fine.  I can't think of anything else broken in this case, although there probably is something since I'd forgotten about it.

I suppose I should make sure there are bugs on file for the above problems...
Attachment #249334 - Flags: superreview?(dbaron)
Attachment #249334 - Flags: superreview+
Attachment #249334 - Flags: review?(dbaron)
Attachment #249334 - Flags: review+
Comment on attachment 249334 [details] [diff] [review]
patch

its a safe change, it adjusts the assertion to the code reality.
Attachment #249334 - Flags: approval1.9?
Comment on attachment 249334 [details] [diff] [review]
patch

a1.9=dbaron
Attachment #249334 - Flags: approval1.9? → approval1.9+
fix checked in
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Crashtest checked in.
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: