Title: [262132] trunk/Source/WebCore
Revision
262132
Author
[email protected]
Date
2020-05-25 17:26:39 -0700 (Mon, 25 May 2020)

Log Message

Make isTableRow() an inline function
https://bugs.webkit.org/show_bug.cgi?id=212360

Reviewed by Darin Adler.

isTableCell() is a virtual function that's called in some hot code paths, like RenderLayer::localBoundingBox(),
so make it inline by using a spare bit on RenderObject.

* rendering/RenderObject.h:
(WebCore::RenderObject::isTableCaption const):
(WebCore::RenderObject::isTableRow const):
(WebCore::RenderObject::setIsTableRow):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::RenderTableRow):
* rendering/RenderTableRow.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (262131 => 262132)


--- trunk/Source/WebCore/ChangeLog	2020-05-26 00:03:15 UTC (rev 262131)
+++ trunk/Source/WebCore/ChangeLog	2020-05-26 00:26:39 UTC (rev 262132)
@@ -1,3 +1,22 @@
+2020-05-25  Simon Fraser  <[email protected]>
+
+        Make isTableRow() an inline function
+        https://bugs.webkit.org/show_bug.cgi?id=212360
+
+        Reviewed by Darin Adler.
+
+        isTableCell() is a virtual function that's called in some hot code paths, like RenderLayer::localBoundingBox(),
+        so make it inline by using a spare bit on RenderObject.
+
+        * rendering/RenderObject.h:
+        (WebCore::RenderObject::isTableCaption const):
+        (WebCore::RenderObject::isTableRow const):
+        (WebCore::RenderObject::setIsTableRow):
+        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
+        * rendering/RenderTableRow.cpp:
+        (WebCore::RenderTableRow::RenderTableRow):
+        * rendering/RenderTableRow.h:
+
 2020-05-25  Alex Christensen  <[email protected]>
 
         Expose more network metrics to WebCoreNSURLSession

Modified: trunk/Source/WebCore/rendering/RenderObject.h (262131 => 262132)


--- trunk/Source/WebCore/rendering/RenderObject.h	2020-05-26 00:03:15 UTC (rev 262131)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2020-05-26 00:26:39 UTC (rev 262132)
@@ -239,7 +239,6 @@
     virtual bool isTableCell() const { return false; }
     virtual bool isRenderTableCol() const { return false; }
     virtual bool isTableCaption() const { return false; }
-    virtual bool isTableRow() const { return false; }
     virtual bool isTableSection() const { return false; }
     virtual bool isTextControl() const { return false; }
     virtual bool isTextArea() const { return false; }
@@ -396,6 +395,7 @@
     bool isLineBreakOpportunity() const { return isLineBreak() && isWBR(); }
     bool isTextOrLineBreak() const { return isText() || isLineBreak(); }
     bool isBox() const { return m_bitfields.isBox(); }
+    bool isTableRow() const { return m_bitfields.isTableRow(); }
     bool isRenderView() const  { return m_bitfields.isBox() && m_bitfields.isTextOrRenderView(); }
     bool isInline() const { return m_bitfields.isInline(); } // inline object
     bool isReplaced() const { return m_bitfields.isReplaced(); } // a "replaced" element (see CSS)
@@ -488,6 +488,7 @@
     void setIsText() { ASSERT(!isBox()); m_bitfields.setIsTextOrRenderView(true); }
     void setIsLineBreak() { m_bitfields.setIsLineBreak(true); }
     void setIsBox() { m_bitfields.setIsBox(true); }
+    void setIsTableRow() { m_bitfields.setIsTableRow(true); }
     void setIsRenderView() { ASSERT(isBox()); m_bitfields.setIsTextOrRenderView(true); }
     void setReplaced(bool b = true) { m_bitfields.setIsReplaced(b); }
     void setHorizontalWritingMode(bool b = true) { m_bitfields.setHorizontalWritingMode(b); }
@@ -820,6 +821,7 @@
             , m_isAnonymous(node.isDocumentNode())
             , m_isTextOrRenderView(false)
             , m_isBox(false)
+            , m_isTableRow(false)
             , m_isInline(true)
             , m_isReplaced(false)
             , m_isLineBreak(false)
@@ -851,6 +853,7 @@
         ADD_BOOLEAN_BITFIELD(isAnonymous, IsAnonymous);
         ADD_BOOLEAN_BITFIELD(isTextOrRenderView, IsTextOrRenderView);
         ADD_BOOLEAN_BITFIELD(isBox, IsBox);
+        ADD_BOOLEAN_BITFIELD(isTableRow, IsTableRow);
         ADD_BOOLEAN_BITFIELD(isInline, IsInline);
         ADD_BOOLEAN_BITFIELD(isReplaced, IsReplaced);
         ADD_BOOLEAN_BITFIELD(isLineBreak, IsLineBreak);
@@ -859,7 +862,6 @@
         ADD_BOOLEAN_BITFIELD(hasLayer, HasLayer);
         ADD_BOOLEAN_BITFIELD(hasOverflowClip, HasOverflowClip); // Set in the case of overflow:auto/scroll/hidden
         ADD_BOOLEAN_BITFIELD(hasTransformRelatedProperty, HasTransformRelatedProperty);
-        ADD_BOOLEAN_BITFIELD(unused, Unused);
 
         ADD_BOOLEAN_BITFIELD(everHadLayout, EverHadLayout);
 

Modified: trunk/Source/WebCore/rendering/RenderTableRow.cpp (262131 => 262132)


--- trunk/Source/WebCore/rendering/RenderTableRow.cpp	2020-05-26 00:03:15 UTC (rev 262131)
+++ trunk/Source/WebCore/rendering/RenderTableRow.cpp	2020-05-26 00:26:39 UTC (rev 262132)
@@ -48,6 +48,7 @@
     , m_rowIndex(unsetRowIndex)
 {
     setInline(false);
+    setIsTableRow();
 }
 
 RenderTableRow::RenderTableRow(Document& document, RenderStyle&& style)
@@ -55,6 +56,7 @@
     , m_rowIndex(unsetRowIndex)
 {
     setInline(false);
+    setIsTableRow();
 }
 
 void RenderTableRow::willBeRemovedFromTree()

Modified: trunk/Source/WebCore/rendering/RenderTableRow.h (262131 => 262132)


--- trunk/Source/WebCore/rendering/RenderTableRow.h	2020-05-26 00:03:15 UTC (rev 262131)
+++ trunk/Source/WebCore/rendering/RenderTableRow.h	2020-05-26 00:26:39 UTC (rev 262132)
@@ -70,8 +70,6 @@
 
     const char* renderName() const override { return (isAnonymous() || isPseudoElement()) ? "RenderTableRow (anonymous)" : "RenderTableRow"; }
 
-    bool isTableRow() const override { return true; }
-
     bool canHaveChildren() const override { return true; }
     void willBeRemovedFromTree() override;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to