<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>251749</bug_id>
          
          <creation_ts>2023-02-04 20:00:08 -0800</creation_ts>
          <short_desc>Optimize layout of AbortSignal to reduce padding</short_desc>
          <delta_ts>2023-02-06 09:19:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1931175</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2023-02-04 20:00:08 -0800</bug_when>
    <thetext>Before:

OpenSource % /usr/bin/python3 ./Tools/Scripts/dump-class-layout -c Release WebCore AbortSignal
  +0 &lt;112&gt; WebCore::AbortSignal
  +0 &lt; 24&gt;   &lt;PADDING: 24 bytes&gt;
 +24 &lt;  4&gt;     WTF::RefCounted&lt;WebCore::AbortSignal, std::__1::default_delete&lt;WebCore::AbortSignal&gt; &gt; WTF::RefCounted&lt;WebCore::AbortSignal, std::__1::default_delete&lt;WebCore::AbortSignal&gt; &gt;
 +24 &lt;  4&gt;         WTF::RefCountedBase WTF::RefCountedBase
 +24 &lt;  4&gt;           unsigned int m_refCount
  +0 &lt; 24&gt;     WebCore::EventTarget WebCore::EventTarget
  +0 &lt;  8&gt;        __vtbl_ptr_type * _vptr
  +8 &lt;  8&gt;         WebCore::ScriptWrappable WebCore::ScriptWrappable
  +8 &lt;  8&gt;             JSC::Weak&lt;WebCore::JSDOMObject&gt; m_wrapper
  +8 &lt;  8&gt;               JSC::WeakImpl * m_impl
 +16 &lt;  8&gt;         WTF::CanMakeWeakPtr&lt;WebCore::EventTarget, WTF::WeakPtrFactoryInitialization::Lazy, WebCore::WeakPtrImplWithEventTargetData&gt; WTF::CanMakeWeakPtr&lt;WebCore::EventTarget, WTF::WeakPtrFactoryInitialization::Lazy, WebCore::WeakPtrImplWithEventTargetData&gt;
 +16 &lt;  8&gt;             WTF::WeakPtrFactory&lt;WebCore::EventTarget, WebCore::WeakPtrImplWithEventTargetData&gt; m_weakPtrFactory
 +16 &lt;  8&gt;                 WTF::CompactRefPtrTuple&lt;WebCore::WeakPtrImplWithEventTargetData, unsigned short&gt; m_impl
 +16 &lt;  8&gt;                     WTF::CompactPointerTuple&lt;WebCore::WeakPtrImplWithEventTargetData *, unsigned short&gt; m_data
 +16 &lt;  8&gt;                       uint64_t m_data
 +24 &lt;  8&gt;   &lt;PADDING: 8 bytes&gt;
 +32 &lt; 16&gt;     WebCore::ContextDestructionObserver WebCore::ContextDestructionObserver
 +32 &lt;  8&gt;        __vtbl_ptr_type * _vptr
 +40 &lt;  8&gt;       WebCore::ScriptExecutionContext * m_scriptExecutionContext
 +48 &lt;  1&gt;   bool m_aborted
 +49 &lt;  7&gt;   &lt;PADDING: 7 bytes&gt;
 +56 &lt; 16&gt;     WTF::Vector&lt;std::__1::pair&lt;unsigned int, WTF::Function&lt;void (JSC::JSValue)&gt; &gt;, 0, WTF::CrashOnOverflow, 16, WTF::FastMalloc&gt; m_algorithms
 +56 &lt; 16&gt;         WTF::VectorBuffer&lt;std::__1::pair&lt;unsigned int, WTF::Function&lt;void (JSC::JSValue)&gt; &gt;, 0, WTF::FastMalloc&gt; WTF::VectorBuffer&lt;std::__1::pair&lt;unsigned int, WTF::Function&lt;void (JSC::JSValue)&gt; &gt;, 0, WTF::FastMalloc&gt;
 +56 &lt; 16&gt;             WTF::VectorBufferBase&lt;std::__1::pair&lt;unsigned int, WTF::Function&lt;void (JSC::JSValue)&gt; &gt;, WTF::FastMalloc&gt; WTF::VectorBufferBase&lt;std::__1::pair&lt;unsigned int, WTF::Function&lt;void (JSC::JSValue)&gt; &gt;, WTF::FastMalloc&gt;
 +56 &lt;  8&gt;               std::__1::pair&lt;unsigned int, WTF::Function&lt;void (JSC::JSValue)&gt; &gt; * m_buffer
 +64 &lt;  4&gt;               unsigned int m_capacity
 +68 &lt;  4&gt;               unsigned int m_size
 +72 &lt;  4&gt;   uint32_t m_algorithmIdentifier
 +76 &lt;  4&gt;   &lt;PADDING: 4 bytes&gt;
 +80 &lt;  8&gt;     WTF::WeakPtr&lt;WebCore::AbortSignal, WebCore::WeakPtrImplWithEventTargetData&gt; m_followingSignal
 +80 &lt;  8&gt;         WTF::RefPtr&lt;WebCore::WeakPtrImplWithEventTargetData, WTF::RawPtrTraits&lt;WebCore::WeakPtrImplWithEventTargetData&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::WeakPtrImplWithEventTargetData&gt; &gt; m_impl
 +80 &lt;  8&gt;           WTF::RawPtrTraits&lt;WebCore::WeakPtrImplWithEventTargetData&gt;::StorageType m_ptr
 +88 &lt; 16&gt;     WebCore::JSValueInWrappedObject m_reason
 +88 &lt;  8&gt;         JSC::JSValue m_nonCell
 +88 &lt;  8&gt;           JSC::EncodedValueDescriptor u
 +96 &lt;  8&gt;         JSC::Weak&lt;JSC::JSCell&gt; m_cell
 +96 &lt;  8&gt;           JSC::WeakImpl * m_impl
+104 &lt;  1&gt;   bool m_hasActiveTimeoutTimer
+105 &lt;  1&gt;   bool m_hasAbortEventListener
+106 &lt;  6&gt;   &lt;PADDING: 6 bytes&gt;
Total byte size: 112
Total pad bytes: 49
Padding percentage: 43.75 %</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931176</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-02-04 20:12:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/105048992&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931177</commentid>
    <comment_count>2</comment_count>
      <attachid>464843</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2023-02-04 20:13:20 -0800</bug_when>
    <thetext>Created attachment 464843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931399</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-02-06 09:19:31 -0800</bug_when>
    <thetext>Committed 259897@main (e60034e6433d): &lt;https://commits.webkit.org/259897@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 464843.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464843</attachid>
            <date>2023-02-04 20:13:20 -0800</date>
            <delta_ts>2023-02-06 09:19:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-251749-20230204201319.patch</filename>
            <type>text/plain</type>
            <size>1962</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">RnJvbSA0MTQ5NDFmYTllMTA0NGM1NTIyNDNkN2FkM2QwMzY4YmIxZDAxZjY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBGcmFzZXIgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CkRhdGU6IFNhdCwgNCBGZWIgMjAyMyAyMDoxMTo0MSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIE9w
dGltaXplIGxheW91dCBvZiBBYm9ydFNpZ25hbCB0byByZWR1Y2UgcGFkZGluZwogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MTc0OSA8cmRhcjovL3Byb2JsZW0vMTA1
MDQ4OTkyPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpSZW9yZGVyIGRhdGEgbWVtYmVy
cyB0byBzaHJpbmsgdGhlIHNpemUgZnJvbSAxMTIgdG8gOTYgYnl0ZXMuCgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9BYm9ydFNpZ25hbC5jcHA6CihXZWJDb3JlOjpBYm9ydFNpZ25hbDo6QWJvcnRTaWdu
YWwpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5oOgotLS0KIFNvdXJjZS9XZWJD
b3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRT
aWduYWwuaCAgIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmNwcAppbmRleCA0ZWU1YjdiMTI4
MzEuLjVjYTBmMDAyYjQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2ln
bmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwuY3BwCkBAIC03OCw4
ICs3OCw4IEBAIFJlZjxBYm9ydFNpZ25hbD4gQWJvcnRTaWduYWw6OnRpbWVvdXQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgdWludDY0X3QKIAogQWJvcnRTaWduYWw6OkFib3J0U2ln
bmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFib3J0ZWQgYWJvcnRlZCwgSlND
OjpKU1ZhbHVlIHJlYXNvbikKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRl
eHQpCi0gICAgLCBtX2Fib3J0ZWQoYWJvcnRlZCA9PSBBYm9ydGVkOjpZZXMpCiAgICAgLCBtX3Jl
YXNvbihyZWFzb24pCisgICAgLCBtX2Fib3J0ZWQoYWJvcnRlZCA9PSBBYm9ydGVkOjpZZXMpCiB7
CiAgICAgQVNTRVJUKHJlYXNvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QWJvcnRTaWduYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5oCmluZGV4IGQy
ZTUzZjY5Y2JlZi4uZWYwMGYxYTMwNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QWJvcnRTaWduYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwuaApAQCAt
ODQsMTEgKzg0LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmlu
YWwgeyBkZXJlZigpOyB9CiAgICAgdm9pZCBldmVudExpc3RlbmVyc0RpZENoYW5nZSgpIGZpbmFs
OwogICAgIAotICAgIGJvb2wgbV9hYm9ydGVkIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8c3RkOjpw
YWlyPHVpbnQzMl90LCBBbGdvcml0aG0+PiBtX2FsZ29yaXRobXM7Ci0gICAgdWludDMyX3QgbV9h
bGdvcml0aG1JZGVudGlmaWVyIHsgMCB9OwogICAgIFdlYWtQdHI8QWJvcnRTaWduYWwsIFdlYWtQ
dHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9mb2xsb3dpbmdTaWduYWw7CiAgICAgSlNWYWx1
ZUluV3JhcHBlZE9iamVjdCBtX3JlYXNvbjsKKyAgICB1aW50MzJfdCBtX2FsZ29yaXRobUlkZW50
aWZpZXIgeyAwIH07CisgICAgYm9vbCBtX2Fib3J0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNBY3RpdmVUaW1lb3V0VGltZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNBYm9ydEV2ZW50
TGlzdGVuZXIgeyBmYWxzZSB9OwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>