[CTTE] RenderTableCol is never anonymous.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Sep 2013 11:16:26 +0000 (11:16 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Sep 2013 11:16:26 +0000 (11:16 +0000)
<https://webkit.org/b/121286>

Reviewed by Antti Koivisto.

Hide element() and provide existingElement() instead, returning an Element&.
Removed one bogus null check that was exposed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155685 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderObject.cpp
Source/WebCore/rendering/RenderTableCol.cpp
Source/WebCore/rendering/RenderTableCol.h

index 134c396..905aec3 100644 (file)
@@ -1,5 +1,15 @@
 2013-09-13  Andreas Kling  <akling@apple.com>
 
+        [CTTE] RenderTableCol is never anonymous.
+        <https://webkit.org/b/121286>
+
+        Reviewed by Antti Koivisto.
+
+        Hide element() and provide existingElement() instead, returning an Element&.
+        Removed one bogus null check that was exposed.
+
+2013-09-13  Andreas Kling  <akling@apple.com>
+
         [CTTE] RenderListItem is never anonymous.
         <https://webkit.org/b/121285>
 
index 4875530..0668b3f 100644 (file)
@@ -221,7 +221,7 @@ RenderObject* RenderObject::createObject(Element* element, RenderStyle* style)
         return new (arena) RenderTableRow(element);
     case TABLE_COLUMN_GROUP:
     case TABLE_COLUMN:
-        return new (arena) RenderTableCol(element);
+        return new (arena) RenderTableCol(*element);
     case TABLE_CELL:
         return new (arena) RenderTableCell(element);
     case TABLE_CAPTION:
index 488ecba..f3128d0 100644 (file)
@@ -35,8 +35,8 @@ namespace WebCore {
 
 using namespace HTMLNames;
 
-RenderTableCol::RenderTableCol(Element* element)
-    : RenderBox(element)
+RenderTableCol::RenderTableCol(Element& element)
+    : RenderBox(&element)
     , m_span(1)
 {
     // init RenderObject attributes
@@ -59,10 +59,9 @@ void RenderTableCol::styleDidChange(StyleDifference diff, const RenderStyle* old
 void RenderTableCol::updateFromElement()
 {
     unsigned oldSpan = m_span;
-    Element* element = this->element();
-    if (element && (element->hasTagName(colTag) || element->hasTagName(colgroupTag))) {
-        HTMLTableColElement* tc = static_cast<HTMLTableColElement*>(element);
-        m_span = tc->span();
+    if (existingElement().hasTagName(colTag) || existingElement().hasTagName(colgroupTag)) {
+        HTMLTableColElement& tc = static_cast<HTMLTableColElement&>(existingElement());
+        m_span = tc.span();
     } else
         m_span = !(style() && style()->display() == TABLE_COLUMN_GROUP);
     if (m_span != oldSpan && style() && parent())
index 4f666c2..232d331 100644 (file)
@@ -35,7 +35,8 @@ class RenderTableCell;
 
 class RenderTableCol FINAL : public RenderBox {
 public:
-    explicit RenderTableCol(Element*);
+    explicit RenderTableCol(Element&);
+    Element& existingElement() const { return *RenderBox::element(); }
 
     RenderObject* firstChild() const { ASSERT(children() == virtualChildren()); return children()->firstChild(); }
     RenderObject* lastChild() const { ASSERT(children() == virtualChildren()); return children()->lastChild(); }
@@ -77,6 +78,8 @@ public:
     const BorderValue& borderAdjoiningCellAfter(const RenderTableCell*) const;
 
 private:
+    void element() const WTF_DELETED_FUNCTION;
+
     virtual RenderObjectChildList* virtualChildren() { return children(); }
     virtual const RenderObjectChildList* virtualChildren() const { return children(); }