[webkit-changes] [WebKit/WebKit] 5b7421: Move RenderElementType to RenderObject to simplify...

Ryosuke Niwa noreply at github.com
Sun Dec 17 13:06:18 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5b7421b95b8ca058e421a83a8436f0db859648e3
      https://github.com/WebKit/WebKit/commit/5b7421b95b8ca058e421a83a8436f0db859648e3
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-12-17 (Sun, 17 Dec 2023)

  Changed paths:
    M Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
    M Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h
    M Source/WebCore/rendering/RenderElement.cpp
    M Source/WebCore/rendering/RenderElement.h
    M Source/WebCore/rendering/RenderObject.cpp
    M Source/WebCore/rendering/RenderObject.h
    M Source/WebCore/rendering/RenderText.cpp
    M Source/WebCore/rendering/RenderTextControlSingleLine.cpp
    M Source/WebCore/rendering/RenderTextControlSingleLine.h
    M Source/WebCore/rendering/svg/RenderSVGContainer.cpp
    M Source/WebCore/rendering/svg/RenderSVGContainer.h
    M Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
    M Source/WebCore/rendering/svg/RenderSVGModelObject.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.h

  Log Message:
  -----------
  Move RenderElementType to RenderObject to simplify and devirtualize type checks
https://bugs.webkit.org/show_bug.cgi?id=266531

Reviewed by Chris Dumez.

This PR moves OptionSet<RenderElementType> from RenderElement to RenderObject to eliminate
isRenderElement checks from isRenderReplaced, isRenderBoxModelObject, etc...

It also devirtualizes isRenderSVGContainer() and isLegacyRenderSVGContainer() with two more
bit flags: LegacyRenderSVGContainer and RenderSVGContainer. This eliminates the last virtual
function calls in RenderTreeBuilder::detach.

* Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
* Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h:
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::RenderElement):
(WebCore::RenderElement::createFor):
* Source/WebCore/rendering/RenderElement.h:
(WebCore::RenderElement::typeFlags const): Deleted.
(WebCore::RenderElement::isRenderLayerModelObject const): Deleted.
(WebCore::RenderElement::isRenderBoxModelObject const): Deleted.
(WebCore::RenderElement::isRenderBlock const): Deleted.
(WebCore::RenderElement::isRenderBlockFlow const): Deleted.
(WebCore::RenderElement::isRenderReplaced const): Deleted.
(WebCore::RenderElement::isRenderInline const): Deleted.
(WebCore::RenderElement::isRenderFlexibleBox const): Deleted.
(WebCore::RenderElement::isRenderTextControl const): Deleted.
(WebCore::RenderObject::isRenderLayerModelObject const): Deleted.
(WebCore::RenderObject::isRenderBoxModelObject const): Deleted.
(WebCore::RenderObject::isRenderBlock const): Deleted.
(WebCore::RenderObject::isRenderBlockFlow const): Deleted.
(WebCore::RenderObject::isRenderReplaced const): Deleted.
(WebCore::RenderObject::isRenderInline const): Deleted.
(WebCore::RenderObject::isRenderFlexibleBox const): Deleted.
(WebCore::RenderObject::isRenderTextControl const): Deleted.
(WebCore::RenderObject::isFlexibleBoxIncludingDeprecated const): Deleted.
* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::isRenderReplaced const):
(WebCore::RenderObject::isRenderBoxModelObject const):
(WebCore::RenderObject::isRenderBlock const):
(WebCore::RenderObject::isRenderBlockFlow const):
(WebCore::RenderObject::isRenderInline const):
(WebCore::RenderObject::isRenderLayerModelObject const):
(WebCore::RenderObject::isRenderTextControl const):
(WebCore::RenderObject::isRenderTextControlSingleLine const):
(WebCore::RenderObject::isRenderSVGContainer const):
(WebCore::RenderObject::isLegacyRenderSVGContainer const):
(WebCore::RenderObject::isRenderDeprecatedFlexibleBox const):
(WebCore::RenderObject::isRenderFlexibleBox const):
(WebCore::RenderObject::isFlexibleBoxIncludingDeprecated const):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
* Source/WebCore/rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
* Source/WebCore/rendering/RenderTextControlSingleLine.h:
* Source/WebCore/rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::RenderSVGContainer):
* Source/WebCore/rendering/svg/RenderSVGContainer.h:
* Source/WebCore/rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
* Source/WebCore/rendering/svg/RenderSVGModelObject.h:
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.cpp:
(WebCore::LegacyRenderSVGContainer::LegacyRenderSVGContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp:
(WebCore::LegacyRenderSVGModelObject::LegacyRenderSVGModelObject):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.h:
(WebCore::LegacyRenderSVGModelObject::LegacyRenderSVGModelObject):

Canonical link: https://commits.webkit.org/272195@main




More information about the webkit-changes mailing list