Skip to content

Commit

Permalink
AX: AccessibilityRole is 3 bytes too large, wasting memory
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=273786
rdar://problem/127616693

Reviewed by Chris Fleizach.

AccessibilityRole is stored as a member variable on AccessibilityObject (m_role) and AccessibilityNodeObject (m_ariaRole),
and the average web page has lots of these objects. This patch resizes it from 4 bytes (the default enum class type is int)
down to 1 byte. This saves ~3.4mb on http://html.spec.whatwg.org (567769 objects * 6 bytes saved each).

* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/accessibility/atspi/AccessibilityAtspi.h:

Canonical link: https://commits.webkit.org/278487@main
  • Loading branch information
twilco committed May 8, 2024
1 parent ed761c3 commit 189e31a
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions Source/WebCore/accessibility/AXCoreObject.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ enum class AXAncestorFlag : uint8_t {
// Bit 7 is free.
};

enum class AccessibilityRole {
Application = 1,
enum class AccessibilityRole : uint8_t {
Application,
ApplicationAlert,
ApplicationAlertDialog,
ApplicationDialog,
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/accessibility/atspi/AccessibilityAtspi.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ typedef struct _GVariant GVariant;
namespace WebCore {
class AccessibilityObjectAtspi;
class AccessibilityRootAtspi;
enum class AccessibilityRole;
enum class AccessibilityRole : uint8_t;

DECLARE_ALLOCATOR_WITH_HEAP_IDENTIFIER(AccessibilityAtspi);
class AccessibilityAtspi {
Expand Down

0 comments on commit 189e31a

Please sign in to comment.