Bug 119697

Summary: [testcase] Removing body children from HTMLTableElement leaves dangling firstBody pointer
Product: [Applications] konqueror Reporter: Vincent Ricard <magic>
Component: khtmlAssignee: Maksim Orlovich <maksim>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 3.5   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: A testcase where append tr seems to fail.

Description Vincent Ricard 2006-01-07 19:25:54 UTC
Version:           3.5 (using KDE KDE 3.5.0)
Installed from:    Debian testing/unstable Packages
OS:                Linux

I have a table, in which i remove all tBodies.
I append a "tr" element to the table, but tBodies.length == 0.
(See the atteched test case)
Comment 1 Vincent Ricard 2006-01-07 19:27:57 UTC
Created attachment 14174 [details]
A testcase where append tr seems to fail.
Comment 2 Maksim Orlovich 2006-01-07 19:32:14 UTC
OK, time to get picky with the title :-)

This is also true of head/foot/etc. And I think in general, we do not update those right on DOM changes.
Comment 3 Maksim Orlovich 2006-03-05 00:43:44 UTC
SVN commit 515817 by orlovich:

Some signficant fixes in the table DOM code:
1. Properly keep track of alterations to DOM structure
so we do not end up with dangling or stale pointers
2. Properly implement logical order in insert/deleteRow.
   Also fix implicit body creation code for insertRow. 
   Essentially, improperly nested tr's are invisible to the DOM code
   (and in IE, they're even invisible on the screen!)
   
3. Be more robust, compatible with other browsers,
in handling of malformed dom-created tables:
    -Ignore <tr>'s directly under table in the rows collection
    -In tsection code do not assume only <tr>'s will be there
    
BUG: 119697
BUG: 100105


 M  +28 -46    html/html_miscimpl.cpp  
 M  +4 -2      html/html_miscimpl.h  
 M  +200 -161  html/html_tableimpl.cpp  
 M  +90 -8     html/html_tableimpl.h  
 M  +3 -3      xml/dom_nodeimpl.cpp  
 M  +2 -1      xml/dom_nodeimpl.h