Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4f22effe60d640611ef0603110004c83defa8a4d
      
https://github.com/WebKit/WebKit/commit/4f22effe60d640611ef0603110004c83defa8a4d
  Author: Tyler Wilcock <[email protected]>
  Date:   2024-12-21 (Sat, 21 Dec 2024)

  Changed paths:
    M Source/WebCore/accessibility/AXCoreObject.h
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  -----------
  AX: AXCoreObject::roleValue() should be made non-virtual
https://bugs.webkit.org/show_bug.cgi?id=285067
rdar://141874370

Reviewed by Chris Fleizach.

roleValue() is one of our most commonly called functions, and it being virtual 
prevents the compiler from inlining it,
preventing other optimizations. With this commit, AccessibilityObject::m_role 
is moved to AXCoreObject::m_role.

For AXIsolatedObjects, we used to store role as AXPropertyName::RoleValue. This 
was wasteful in terms of memory, as
every entry in the property map is the size of the largest type in 
AXPropertyValueVariant, which is currently 32 bytes,
while AccessibilityRole is only 1 byte. By moving role to AXCoreObject::m_role 
instead of storing it as a property,
we save 31 bytes per object. This saves 17.6mb on http://html.spec.whatwg.org 
(567769 objects times 31 bytes).

* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AXCoreObject::roleValue const):
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::initializeProperties):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to