[webkit-changes] [WebKit/WebKit] 27999f: Devirtualize even more type checks for RenderObject

Ryosuke Niwa noreply at github.com
Tue Dec 19 08:18:32 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 27999fcc9508fc5c531bccb64e3c147a5ea94cb0
      https://github.com/WebKit/WebKit/commit/27999fcc9508fc5c531bccb64e3c147a5ea94cb0
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-12-19 (Tue, 19 Dec 2023)

  Changed paths:
    M Source/WebCore/rendering/RenderLineBreak.cpp
    M Source/WebCore/rendering/RenderLineBreak.h
    M Source/WebCore/rendering/RenderObject.cpp
    M Source/WebCore/rendering/RenderObject.h
    M Source/WebCore/rendering/svg/RenderSVGBlock.cpp
    M Source/WebCore/rendering/svg/RenderSVGBlock.h
    M Source/WebCore/rendering/svg/RenderSVGContainer.cpp
    M Source/WebCore/rendering/svg/RenderSVGContainer.h
    M Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp
    M Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h
    M Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
    M Source/WebCore/rendering/svg/RenderSVGModelObject.h
    M Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
    M Source/WebCore/rendering/svg/RenderSVGShape.cpp
    M Source/WebCore/rendering/svg/RenderSVGShape.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGHiddenContainer.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGHiddenContainer.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceContainer.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceContainer.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.h

  Log Message:
  -----------
  Devirtualize even more type checks for RenderObject
https://bugs.webkit.org/show_bug.cgi?id=266615

Reviewed by Antti Koivisto.

Devirtualize the remaining type checks for SVG by introducing SVG specific flags
stored in the unused 8-bit space left after m_type. Utilize the same mechanism /
same bits to store wbr-ness of RenderLineBreak as well.

* Source/WebCore/rendering/RenderLineBreak.cpp:
(WebCore::m_cachedLineHeight):
(WebCore::m_isWBR): Deleted.
* Source/WebCore/rendering/RenderLineBreak.h:
* Source/WebCore/rendering/RenderObject.cpp:
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::isLegacyRenderSVGModelObject const):
(WebCore::RenderObject::isRenderSVGModelObject const):
(WebCore::RenderObject::svgFlags const):
(WebCore::RenderObject::setSVGFlags):
(WebCore::RenderObject::isRenderSVGBlock const):
(WebCore::RenderObject::isRenderSVGContainer const):
(WebCore::RenderObject::isLegacyRenderSVGContainer const):
(WebCore::RenderObject::isLegacyRenderSVGHiddenContainer const):
(WebCore::RenderObject::isRenderSVGShape const):
(WebCore::RenderObject::isLegacyRenderSVGShape const):
(WebCore::RenderObject::isLegacyRenderSVGResourceContainer const):
(WebCore::RenderObject::isRenderSVGResourceContainer const):
(WebCore::RenderObject::isWBR const):
(WebCore::RenderObject::lineBreakFlags const):
(WebCore::RenderObject::setLineBreakFlags):
* Source/WebCore/rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::RenderSVGBlock):
* Source/WebCore/rendering/svg/RenderSVGBlock.h:
* Source/WebCore/rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::RenderSVGContainer):
* Source/WebCore/rendering/svg/RenderSVGContainer.h:
(WebCore::RenderSVGContainer::RenderSVGContainer):
* Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
* Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h:
(WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
* Source/WebCore/rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
* Source/WebCore/rendering/svg/RenderSVGModelObject.h:
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
* Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
* Source/WebCore/rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::RenderSVGShape):
* Source/WebCore/rendering/svg/RenderSVGShape.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.cpp:
(WebCore::LegacyRenderSVGContainer::LegacyRenderSVGContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.h:
(WebCore::LegacyRenderSVGContainer::LegacyRenderSVGContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGHiddenContainer.cpp:
(WebCore::LegacyRenderSVGHiddenContainer::LegacyRenderSVGHiddenContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGHiddenContainer.h:
(WebCore::LegacyRenderSVGHiddenContainer::LegacyRenderSVGHiddenContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp:
(WebCore::LegacyRenderSVGModelObject::LegacyRenderSVGModelObject):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.h:
(WebCore::LegacyRenderSVGModelObject::LegacyRenderSVGModelObject):
(): Deleted.
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceContainer.cpp:
(WebCore::LegacyRenderSVGResourceContainer::LegacyRenderSVGResourceContainer):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceContainer.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp:
(WebCore::LegacyRenderSVGShape::LegacyRenderSVGShape):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.h:

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




More information about the webkit-changes mailing list