Closed Bug 24661 Opened 25 years ago Closed 24 years ago

bogus incremental reflow with aligned table and missing image

Categories

(Core :: Layout, defect, P2)

x86
Windows NT
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: karnaze, Assigned: buster)

References

()

Details

The table regression test for bug 4093 doesn't reflow properly. In the following 
reduction, the block containing the nested table get's its first incremental 
reflow and reflows the nested table. Then it reflows the nested table a 2nd 
time, but this time, the reflow command is messed up, because 
nsTableOuterFrame::IncrementalReflow calls GetNext() on the reflow command but 
gets back nsnull. The target of the reflow command is a block. If either 
align=right is removed or the image can be loaded, the problem goes away.


<table width=100% border=2>
 <tr>
  <td>
   <table cellspacing=0 cellpadding=0 width=224 border=1 align=right>
    <tr>
     <td>this doesn't show until a window resize</td>
    </tr>
    <tr>
     <td height=8><img src="dontFind.jpg" width=1 height=8 alt=""></td>
    </tr>
   </table>
  </td>
 </tr>
</table>





          TC::Rfl 011E70B8 rea=1 av=(8820,UC) comp=(8760,UC)
            Area::Rfl en 011E7114 rea=1 av=(8760,UC) comp=(8760,UC)
count=7
            TO::Rfl en 011E7198 rea=1 av=(8760,UC) comp=(3330,UC)
              T::Rfl en 011E71EC rea=1 av=(8760,UC) comp=(3330,UC)
                TRG::Rfl 011E7258 rea=1 av=(3330,UC) comp=(3330,UC)
                  TR::Rfl en 011E73C0 rea=1 av=(3330,UC) comp=(3330,UC)
                    TC::Rfl 011E7408 rea=1 av=(3330,UC) comp=(3300,120)
                      Area::Rfl en 011EBF28 rea=1 av=(3300,UC) comp=(3300,UC)
                      Area::Rfl ex 011EBF28 des=(3300,0) maxElem=(0,0)
                    TC::Rfl ex 011E7408 des=(3330,30) maxElem=(45,0)
                  TR::Rfl ex 011E73C0 des=(3330,120) maxElem=(45,0)
                TRG::Rfl ex 011E7258 des=(3330,0) maxElem=(750,315)
                TRG::Rfl 011E7258 rea=2 av=(3330,UC) comp=(3330,UC)
                  TR::Rfl en 011E7298 rea=2 av=(3330,UC) comp=(3330,UC)
                  TR::Rfl ex 011E7298 des=(3330,600)
                  TR::Rfl en 011E73C0 rea=2 av=(3330,UC) comp=(3330,UC)
                  TR::Rfl ex 011E73C0 des=(3330,120)
                TRG::Rfl ex 011E7258 des=(3330,720)
              T::Rfl ex 011E71EC des=(3360,750) maxElem=(3360,0)
            TO::Rfl ex 011E7198 des=(3360,750) maxElem=(3360,0)
count=8
###!!! ASSERTION: hello: 'PR_FALSE', file S:\mozilla\layout\html\table\src\nsTab
leOuterFrame.cpp, line 828
###!!! Break: at file S:\mozilla\layout\html\table\src\nsTableOuterFrame.cpp, li
ne 828
            TO::Rfl en 011E7198 rea=1 av=(8760,UC) comp=(3330,UC)
            TO::Rfl ex 011E7198 des=(3360,0) maxElem=(0,0)
            Area::Rfl ex 011E7114 des=(8760,0) maxElem=(0,0)
          TC::Rfl ex 011E70B8 des=(8820,90) maxElem=(75,90)
        TR::Rfl ex 011E7070 des=(8880,150)
      TRG::Rfl ex 011E7030 des=(8880,0)
I didn't intend to include the debug reflow output. At count=8 (the eight time 
the outer table was reflowed), the problem occurs, and the outer table returns 0 
as the desired height.
karnaze put in a workaround, so this gets lower priority
Target Milestone: M16
mine! mine mine mine!  all mine!  whoo-hoo!
Assignee: kipp → buster
Status: NEW → ASSIGNED
Priority: P3 → P2
Somewhere along the line, this got fixed.  I set a breakpoint in 
nsTableOuterFrame::IncrementalReflow(), and it never gets called when the test 
case is loaded.

Chris, you'll have to verify since this is a code-level thing.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.