[webkit-changes] [WebKit/WebKit] 8ee5c1: Free up more bits in RenderObject by making use of...

Ryosuke Niwa noreply at github.com
Wed Dec 20 11:52:24 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8ee5c1fb2dac1fb3ed84e391228ed45289b63bbd
      https://github.com/WebKit/WebKit/commit/8ee5c1fb2dac1fb3ed84e391228ed45289b63bbd
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-12-20 (Wed, 20 Dec 2023)

  Changed paths:
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderBlock.h
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBlockFlow.h
    M Source/WebCore/rendering/RenderFragmentContainer.cpp
    M Source/WebCore/rendering/RenderFragmentedFlow.cpp
    M Source/WebCore/rendering/RenderObject.h
    M Source/WebCore/rendering/RenderReplaced.cpp
    M Source/WebCore/rendering/RenderTextControl.cpp
    M Source/WebCore/rendering/svg/RenderSVGBlock.cpp
    M Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp

  Log Message:
  -----------
  Free up more bits in RenderObject by making use of TypeSpecificFlags's kind
https://bugs.webkit.org/show_bug.cgi?id=266682

Reviewed by Antti Koivisto.

This PR replaces several values of TypeFlag with the corresponding TypeSpecificFlags::Kind
to free up more bits in RenderObject.

It also introduces BlockFlowFlag, which is a type specific flags for RenderBlockFlow. This
change required increasing the number of bits used to store Kind by one bit, shrinking
the number of bits available to actual type specific flags by one bit.

These two changes together free up 7 bits in TypeFlag so this PR also shrinks the width of
TypeFlag from uint16_t to uint8_t.

* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
* Source/WebCore/rendering/RenderBlock.h:
(WebCore::RenderBlock::RenderBlock):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::RenderBlockFlow):
* Source/WebCore/rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlow):
* Source/WebCore/rendering/RenderFragmentContainer.cpp:
(WebCore::RenderFragmentContainer::RenderFragmentContainer):
* Source/WebCore/rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::RenderFragmentedFlow):
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::TypeSpecificFlags::TypeSpecificFlags):
(WebCore::RenderObject::TypeSpecificFlags::kind const):
(WebCore::RenderObject::TypeSpecificFlags::blockFlowFlags const):
(WebCore::RenderObject::TypeSpecificFlags::valueForKind const):
(WebCore::RenderObject::isRenderReplaced const):
(WebCore::RenderObject::isRenderBlockFlow const):
(WebCore::RenderObject::isRenderFragmentContainer const):
(WebCore::RenderObject::isRenderTextControl const):
(WebCore::RenderObject::isLegacyRenderSVGModelObject const):
(WebCore::RenderObject::isRenderSVGModelObject const):
(WebCore::RenderObject::isRenderSVGBlock const):
(WebCore::RenderObject::isRenderFragmentedFlow const):
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced):
* Source/WebCore/rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
* Source/WebCore/rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::RenderSVGBlock):
* Source/WebCore/rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp:
(WebCore::LegacyRenderSVGModelObject::LegacyRenderSVGModelObject):

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




More information about the webkit-changes mailing list