summaryrefslogtreecommitdiffstats
path: root/WebCore/html/HTMLTableCellElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/HTMLTableCellElement.cpp')
-rw-r--r--WebCore/html/HTMLTableCellElement.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/WebCore/html/HTMLTableCellElement.cpp b/WebCore/html/HTMLTableCellElement.cpp
index d90b125..0bd3cf5 100644
--- a/WebCore/html/HTMLTableCellElement.cpp
+++ b/WebCore/html/HTMLTableCellElement.cpp
@@ -123,7 +123,7 @@ void HTMLTableCellElement::parseMappedAttribute(Attribute* attr)
// used by table cells to share style decls created by the enclosing table.
void HTMLTableCellElement::additionalAttributeStyleDecls(Vector<CSSMutableStyleDeclaration*>& results)
{
- Node* p = parentNode();
+ ContainerNode* p = parentNode();
while (p && !p->hasTagName(tableTag))
p = p->parentNode();
if (!p)
@@ -173,4 +173,20 @@ void HTMLTableCellElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls)
addSubresourceURL(urls, document()->completeURL(getAttribute(backgroundAttr)));
}
+HTMLTableCellElement* HTMLTableCellElement::cellAbove() const
+{
+ RenderObject* cellRenderer = renderer();
+ if (!cellRenderer)
+ return 0;
+ if (!cellRenderer->isTableCell())
+ return 0;
+
+ RenderTableCell* tableCellRenderer = toRenderTableCell(cellRenderer);
+ RenderTableCell* cellAboveRenderer = tableCellRenderer->table()->cellAbove(tableCellRenderer);
+ if (!cellAboveRenderer)
+ return 0;
+
+ return static_cast<HTMLTableCellElement*>(cellAboveRenderer->node());
}
+
+} // namespace WebCore