void HTMLTableElementImpl::deleteRow( long index, int &exceptioncode ) { HTMLTableSectionElementImpl* section = 0L; NodeImpl *node = firstChild(); bool lastRow = index == -1; HTMLTableSectionElementImpl* lastSection = 0L; bool found = false; for ( ; node ; node = node->nextSibling() ) { if ( node != foot && (node->id() == ID_THEAD || node->id() == ID_TFOOT || node->id() == ID_TBODY) ) { section = static_cast<HTMLTableSectionElementImpl *>(node); lastSection = section; int rows = section->numRows(); if ( !lastRow ) { if ( rows > index ) { found = true; break; } else index -= rows; } } section = 0L; } if ( !found && foot ) section = static_cast<HTMLTableSectionElementImpl *>(foot); if ( lastRow ) lastSection->deleteRow( -1, exceptioncode ); else if ( section && index >= 0 && index < section->numRows() ) section->deleteRow( index, exceptioncode ); else exceptioncode = DOMException::INDEX_SIZE_ERR; }
void HTMLTableElementImpl::deleteRow( long index, int &exceptioncode ) { long sectionIndex; HTMLTableSectionElementImpl* section; if ( findRowSection( index, section, sectionIndex ) ) section->deleteRow( sectionIndex, exceptioncode ); else if ( section && index == -1 ) section->deleteRow( -1, exceptioncode ); else exceptioncode = DOMException::INDEX_SIZE_ERR; }