Closed Bug 476579 Opened 16 years ago Closed 16 years ago

"ASSERTION: nsTableCellMap::RemoveCell - could not remove cell" with -moz-column

Categories

(Core :: Layout: Tables, defect)

x86
macOS
defect
Not set
critical

Tracking

()

RESOLVED DUPLICATE of bug 468771

People

(Reporter: jruderman, Unassigned)

References

Details

(Keywords: assertion, crash, testcase, Whiteboard: [sg:dupe 468771])

Attachments

(4 files, 1 obsolete file)

Attached file testcase
###!!! ASSERTION: nsTableCellMap::RemoveCell - could not remove cell: 'Error', file /Users/jruderman/central/layout/tables/nsCellMap.cpp, line 724 Crash [@ BasicTableLayoutStrategy::ComputeColumnIntrinsicWidths] calling 0x00000000. Security-sensitive because 0x00000000 is called (not simply accessed).
Oh, and I've seen this call 0xdddddddd.
Whiteboard: [sg:critical]
I will look into this.
Martijn, is this a regression? Bernd
If comment 0 would have mentioned ###!!! ASSERTION: Shouldn't be incomplete if availableHeight is UNCONSTRAINED.: 'aReflowState.availableHeight != NS_UNCONSTRAINEDSIZE', file d:/moz_src/src/layout/generic/nsBlockFrame.cpp, line 1400 I would not even have bothered to ask for a regression range. Its a known old melody.
see bug 468771 for example
The testcase triggers only the incomplete assert.
Attached file reflow log (obsolete) —
please notice that during the problematic reflow a h-resize v-resize on the column frame is executed, however the nif of the incomplete first block is not queried but the status of the first block is returned instead of the complete status of the nif.
Attached file reflow log
so what happens here is that block above the columnset which later gets removed indicates enough space so that two columns would fit. Since the text "s t" does not fit into a single column two columns are populated. After the mutation only 1px wide column is reported as pref width. Since the column set does not ask for more space its gets only 1px as available space. So into this only one column fits. And then IMHO the block reflow borks instead of showing something like ColumnSet(div)(0) 06FB570C Reflow a=60,UC c=60,UC dirty v-resize cnt=11907 block 06FB5658 Reflow a=60,UC c=60,UC dirty v-resize cnt=11908 text 06FB58D4 Reflow a=60,UC c=UC,UC dirty v-resize nif=06FB6448 cnt=11909 text 06FB58D4 Reflow d=360,1140 status=0x1 text 06FB6448 Reflow a=60,UC c=UC,UC dirty v-resize pif=06FB58D4 cnt=11910 text 06FB6448 Reflow d=240,1140 block 06FB5658 Reflow d=60,2400 o=(0,0) 360 x 2400sto=(0,0) 360 x 2400 ColumnSet(div)(0) 06FB570C Reflow d=60,2400 o=(0,0) 360 x 2400sto=(0,0) 360 x 2400 it does not show a 2400 twips height but as previously 1140twips because the outer block still has its nextinflow from the previous 2 column scenario which would easily take care of the 2 second letter. summary: the number of columns shrinks but the old nextinflows should be adapted to this (removed??).
Attachment #361080 - Attachment is obsolete: true
Fixed by checkin for bug 468771.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
Whiteboard: [sg:critical] → [sg:dupe 468771]
Group: core-security
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: