<?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>193058</bug_id>
          
          <creation_ts>2018-12-29 16:53:44 -0800</creation_ts>
          <short_desc>clang-tidy: Save 8 padding bytes on WebCore::BorderEdge</short_desc>
          <delta_ts>2018-12-30 13:56:59 -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>Layout and Rendering</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1491010</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-12-29 16:53:44 -0800</bug_when>
    <thetext>Running `clang-tidy -header-filter=.* -checks=&apos;-*,clang-analyzer-optin.performance.*&apos; ...` on WebCore source files found unneeded padding bytes in the WebCore::BorderEdge class.

Source/WebCore/rendering/BorderEdge.h:39:7: warning: Excessive padding in &apos;class WebCore::BorderEdge&apos; (9 padding bytes, where 1 is optimal). 
Optimal fields order: 
m_color, 
m_width, 
m_flooredToDevicePixelWidth, 
m_devicePixelRatio, 
m_style, 
m_isTransparent, 
m_isPresent, 
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
class BorderEdge {
      ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491011</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-12-29 16:55:32 -0800</bug_when>
    <thetext>$ ./Tools/Scripts/dump-class-layout -c Release -a x86_64 -b $BUILD_DIR WebCore WebCore::BorderEdge
  +0 &lt; 32&gt; BorderEdge
  +0 &lt;  4&gt;     WebCore::LayoutUnit m_width
  +0 &lt;  4&gt;       int m_value
  +4 &lt;  4&gt;   &lt;PADDING: 4 bytes&gt;
  +8 &lt;  8&gt;     WebCore::Color m_color
  +8 &lt;  8&gt;       WebCore::Color::(anonymous union) m_colorData
 +16 &lt;  1&gt;   WebCore::BorderStyle m_style
 +17 &lt;  1&gt;   bool m_isTransparent
 +18 &lt;  1&gt;   bool m_isPresent
 +19 &lt;  1&gt;   &lt;PADDING: 1 byte&gt;
 +20 &lt;  4&gt;   float m_flooredToDevicePixelWidth
 +24 &lt;  4&gt;   float m_devicePixelRatio
 +28 &lt;  4&gt;   &lt;PADDING: 4 bytes&gt;
Total byte size: 32
Total pad bytes: 9
Padding percentage: 28.12 %

Removing 8 padding bytes would make the class 24 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491012</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-29 16:56:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/46979275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491013</commentid>
    <comment_count>3</comment_count>
      <attachid>358141</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-12-29 16:58:54 -0800</bug_when>
    <thetext>Created attachment 358141
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491016</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-12-29 19:24:05 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #1)
&gt; $ ./Tools/Scripts/dump-class-layout -c Release -a x86_64 -b $BUILD_DIR
&gt; WebCore WebCore::BorderEdge
&gt;   +0 &lt; 32&gt; BorderEdge
&gt;   +0 &lt;  4&gt;     WebCore::LayoutUnit m_width
&gt;   +0 &lt;  4&gt;       int m_value
&gt;   +4 &lt;  4&gt;   &lt;PADDING: 4 bytes&gt;
&gt;   +8 &lt;  8&gt;     WebCore::Color m_color
&gt;   +8 &lt;  8&gt;       WebCore::Color::(anonymous union) m_colorData
&gt;  +16 &lt;  1&gt;   WebCore::BorderStyle m_style
&gt;  +17 &lt;  1&gt;   bool m_isTransparent
&gt;  +18 &lt;  1&gt;   bool m_isPresent
&gt;  +19 &lt;  1&gt;   &lt;PADDING: 1 byte&gt;
&gt;  +20 &lt;  4&gt;   float m_flooredToDevicePixelWidth
&gt;  +24 &lt;  4&gt;   float m_devicePixelRatio
&gt;  +28 &lt;  4&gt;   &lt;PADDING: 4 bytes&gt;
&gt; Total byte size: 32
&gt; Total pad bytes: 9
&gt; Padding percentage: 28.12 %
&gt; 
&gt; Removing 8 padding bytes would make the class 24 bytes.

After the patch is applied:

$ ./Tools/Scripts/dump-class-layout -c Release -a x86_64 -b $BUILD_DIR WebCore WebCore::BorderEdge
  +0 &lt; 24&gt; BorderEdge
  +0 &lt;  8&gt;     WebCore::Color m_color
  +0 &lt;  8&gt;       WebCore::Color::(anonymous union) m_colorData
  +8 &lt;  4&gt;     WebCore::LayoutUnit m_width
  +8 &lt;  4&gt;       int m_value
 +12 &lt;  4&gt;   float m_flooredToDevicePixelWidth
 +16 &lt;  4&gt;   float m_devicePixelRatio
 +20 &lt;  1&gt;   WebCore::BorderStyle m_style
 +21 &lt;  1&gt;   bool m_isTransparent
 +22 &lt;  1&gt;   bool m_isPresent
 +23 &lt;  1&gt;   &lt;PADDING: 1 byte&gt;
Total byte size: 24
Total pad bytes: 1
Padding percentage: 4.17 %</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491046</commentid>
    <comment_count>5</comment_count>
      <attachid>358141</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-30 13:30:17 -0800</bug_when>
    <thetext>Comment on attachment 358141
Patch v1

r=me, nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491047</commentid>
    <comment_count>6</comment_count>
      <attachid>358141</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-30 13:56:58 -0800</bug_when>
    <thetext>Comment on attachment 358141
Patch v1

Clearing flags on attachment: 358141

Committed r239563: &lt;https://trac.webkit.org/changeset/239563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491048</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-30 13:56:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358141</attachid>
            <date>2018-12-29 16:58:54 -0800</date>
            <delta_ts>2018-12-30 13:56:58 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-193058-20181229165853.patch</filename>
            <type>text/plain</type>
            <size>2710</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgyOGU4ZDZlM2Q5OTQx
ZmU2MGEzMGE4NWE1Yzk4YzM3ODAzZDc4My4uYTVmMGFiODY1MWQ5NDkwNDFmODM0ODFjNzQwODQ5
YTg0MTdkMzlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTEyLTI5ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgY2xhbmctdGlkeTogU2F2
ZSA4IHBhZGRpbmcgYnl0ZXMgb24gV2ViQ29yZTo6Qm9yZGVyRWRnZQorICAgICAgICA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTkzMDU4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDY5NzkyNzU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvQm9yZGVyRWRnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJFZGdlOjpCb3Jk
ZXJFZGdlKTogUmVvcmRlciBpbml0aWFsaXphdGlvbiB0bworICAgICAgICBtYXRjaCBuZXcgaW5z
dGFuY2UgdmFyaWFibGUgb3JkZXIuCisgICAgICAgICogcmVuZGVyaW5nL0JvcmRlckVkZ2UuaDog
UmVvcmRlciBpbnN0YW5jZSB2YXJpYWJsZXMgdG8gc2F2ZQorICAgICAgICA4IHBhZGRpbmcgYnl0
ZXMuCisKIDIwMTgtMTItMjkgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBQcmVmZXIgUmV0YWluUHRyPE5TT2JqZWN0PiB0byBSZXRhaW5QdHI8TlNPYmplY3Qg
Kj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJFZGdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJFZGdlLmNwcAppbmRleCBiYjMwZjNkMGMx
YmI1NWQ0NzIzYTU2NDk0ZmI3NGYyNzMwMjgxZjc2Li40NDFlZmU0NWViODNjM2U0MzQyYWMwMWZl
NTc2YjU5OTJiY2E1N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9y
ZGVyRWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlckVkZ2UuY3Bw
CkBAIC0zNCwxMiArMzQsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQm9yZGVyRWRnZTo6
Qm9yZGVyRWRnZShmbG9hdCBlZGdlV2lkdGgsIENvbG9yIGVkZ2VDb2xvciwgQm9yZGVyU3R5bGUg
ZWRnZVN0eWxlLCBib29sIGVkZ2VJc1RyYW5zcGFyZW50LCBib29sIGVkZ2VJc1ByZXNlbnQsIGZs
b2F0IGRldmljZVBpeGVsUmF0aW8pCi0gICAgOiBtX3dpZHRoKGVkZ2VXaWR0aCkKLSAgICAsIG1f
Y29sb3IoZWRnZUNvbG9yKQorICAgIDogbV9jb2xvcihlZGdlQ29sb3IpCisgICAgLCBtX3dpZHRo
KGVkZ2VXaWR0aCkKKyAgICAsIG1fZGV2aWNlUGl4ZWxSYXRpbyhkZXZpY2VQaXhlbFJhdGlvKQog
ICAgICwgbV9zdHlsZShlZGdlU3R5bGUpCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZWRnZUlzVHJh
bnNwYXJlbnQpCiAgICAgLCBtX2lzUHJlc2VudChlZGdlSXNQcmVzZW50KQotICAgICwgbV9kZXZp
Y2VQaXhlbFJhdGlvKGRldmljZVBpeGVsUmF0aW8pCiB7CiAgICAgaWYgKGVkZ2VTdHlsZSA9PSBC
b3JkZXJTdHlsZTo6RG91YmxlICYmIGVkZ2VXaWR0aCAgPCBib3JkZXJXaWR0aEluRGV2aWNlUGl4
ZWwoMykpCiAgICAgICAgIG1fc3R5bGUgPSBCb3JkZXJTdHlsZTo6U29saWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyRWRnZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0JvcmRlckVkZ2UuaAppbmRleCA3ODJjYWQ5YzUxNWEwNWI3MTIwNDkwOTdmNmU2
ZjBiY2JlMWRjYmQ3Li5hY2ZmMDk4NTQzMWEzZmVmYjUwNTkzNWRhYWQ4OTg3MzVkZjA1MDM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyRWRnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJFZGdlLmgKQEAgLTY3LDEzICs2NywxMyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIGlubGluZSBmbG9hdCBib3JkZXJXaWR0aEluRGV2aWNlUGl4
ZWwoaW50IGxvZ2ljYWxQaXhlbHMpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQobG9naWNhbFBp
eGVscyAvIG1fZGV2aWNlUGl4ZWxSYXRpbykudG9GbG9hdCgpOyB9CiAKLSAgICBMYXlvdXRVbml0
IG1fd2lkdGg7CiAgICAgQ29sb3IgbV9jb2xvcjsKKyAgICBMYXlvdXRVbml0IG1fd2lkdGg7Cisg
ICAgZmxvYXQgbV9mbG9vcmVkVG9EZXZpY2VQaXhlbFdpZHRoIHsgMCB9OworICAgIGZsb2F0IG1f
ZGV2aWNlUGl4ZWxSYXRpbyB7IDEgfTsKICAgICBCb3JkZXJTdHlsZSBtX3N0eWxlIHsgQm9yZGVy
U3R5bGU6OkhpZGRlbiB9OwogICAgIGJvb2wgbV9pc1RyYW5zcGFyZW50IHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNQcmVzZW50IHsgZmFsc2UgfTsKLSAgICBmbG9hdCBtX2Zsb29yZWRUb0Rldmlj
ZVBpeGVsV2lkdGggeyAwIH07Ci0gICAgZmxvYXQgbV9kZXZpY2VQaXhlbFJhdGlvIHsgMSB9Owog
fTsKIAogaW5saW5lIGJvb2wgZWRnZXNTaGFyZUNvbG9yKGNvbnN0IEJvcmRlckVkZ2UmIGZpcnN0
RWRnZSwgY29uc3QgQm9yZGVyRWRnZSYgc2Vjb25kRWRnZSkgeyByZXR1cm4gZmlyc3RFZGdlLmNv
bG9yKCkgPT0gc2Vjb25kRWRnZS5jb2xvcigpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>