<?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>163490</bug_id>
          
          <creation_ts>2016-10-15 13:32:34 -0700</creation_ts>
          <short_desc>Build fix for HasOwnPropertyCache::Entry caused slowdown by introducing a constructor that doesn&apos;t use move semantics for the RefPtr&lt;UniquedStringImpl&gt; parameter</short_desc>
          <delta_ts>2016-10-17 13:37:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1240622</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-15 13:32:34 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241059</commentid>
    <comment_count>1</comment_count>
      <attachid>291843</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-17 11:33:23 -0700</bug_when>
    <thetext>Created attachment 291843
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241067</commentid>
    <comment_count>2</comment_count>
      <attachid>291843</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-17 11:38:18 -0700</bug_when>
    <thetext>Comment on attachment 291843
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=291843&amp;action=review

&gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:48
&gt; +        Entry(RefPtr&lt;UniquedStringImpl&gt;&amp;&amp; impl, StructureID structureID, bool result)
&gt; +            : impl(WTFMove(impl))

Looks good.

&gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:124
&gt; -            bitwise_cast&lt;Entry*&gt;(this)[index] = Entry{ RefPtr&lt;UniquedStringImpl&gt;(impl), id, result };
&gt; +            bitwise_cast&lt;Entry*&gt;(this)[index] = Entry(RefPtr&lt;UniquedStringImpl&gt;(impl), id, result);

I suggest not making this change.

Using the function-call-style () syntax instead of the initialization-style {} syntax allows some kinds of implicit type conversions and it’s nice to not allow them. Generally, I think the { } syntax should be preferred in new code. In addition, Anders Carlsson convinced me that we should have a space after the type name, but I won’t try to convince you of that right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241072</commentid>
    <comment_count>3</comment_count>
      <attachid>291847</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-17 11:42:07 -0700</bug_when>
    <thetext>Created attachment 291847
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241074</commentid>
    <comment_count>4</comment_count>
      <attachid>291843</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-17 11:44:07 -0700</bug_when>
    <thetext>Comment on attachment 291843
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=291843&amp;action=review

&gt;&gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:124
&gt;&gt; +            bitwise_cast&lt;Entry*&gt;(this)[index] = Entry(RefPtr&lt;UniquedStringImpl&gt;(impl), id, result);
&gt; 
&gt; I suggest not making this change.
&gt; 
&gt; Using the function-call-style () syntax instead of the initialization-style {} syntax allows some kinds of implicit type conversions and it’s nice to not allow them. Generally, I think the { } syntax should be preferred in new code. In addition, Anders Carlsson convinced me that we should have a space after the type name, but I won’t try to convince you of that right now.

Ok, I&apos;ve changed it back, and with the space between the type name and the &quot;{&quot;. I actually prefer the space, however, I&apos;ve never been aware of any style rules for WebKit itself. If we haven&apos;t decided on an official style, we probably should, and put it in the style guide.

I like the property of not allowing type conversions and allowing the caller to control that instead of the callee.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241127</commentid>
    <comment_count>5</comment_count>
      <attachid>291847</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 13:36:57 -0700</bug_when>
    <thetext>Comment on attachment 291847
patch for landing

Clearing flags on attachment: 291847

Committed r207425: &lt;http://trac.webkit.org/changeset/207425&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241128</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 13:37:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291843</attachid>
            <date>2016-10-17 11:33:23 -0700</date>
            <delta_ts>2016-10-17 11:42:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>1964</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3NDE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE2LTEwLTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEJ1aWxkIGZpeCBmb3IgSGFzT3duUHJvcGVydHlDYWNoZTo6RW50cnkgY2F1c2VkIHNsb3dkb3du
IGJ5IGludHJvZHVjaW5nIGEgY29uc3RydWN0b3IgdGhhdCBkb2Vzbid0IHVzZSBtb3ZlIHNlbWFu
dGljcyBmb3IgdGhlIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gcGFyYW1ldGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0OTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvSGFzT3du
UHJvcGVydHlDYWNoZS5oOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjpFbnRy
eTo6RW50cnkpOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjp0cnlBZGQpOgor
CiAyMDE2LTEwLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgdGhlIHJlamVjdCgpIGhlbHBlciBmdW5jdGlvbiBmb3IgY29uZGl0aW9uYWxseSB0aHJvd2lu
ZyBUeXBlRXJyb3JzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3du
UHJvcGVydHlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaAkocmV2aXNpb24gMjA3NDE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJvcGVydHlDYWNoZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NCwxMiArNDQsMTEgQEAgcHVibGljOgogCiAgICAgICAgIEVudHJ5KCkgPSBkZWZhdWx0
OwogCi0gICAgICAgIEVudHJ5KFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gaW1wbCwgU3RydWN0
dXJlSUQgc3RydWN0dXJlSUQsIGJvb2wgcmVzdWx0KQotICAgICAgICAgICAgOiBpbXBsKGltcGwp
CisgICAgICAgIEVudHJ5KFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4mJiBpbXBsLCBTdHJ1Y3R1
cmVJRCBzdHJ1Y3R1cmVJRCwgYm9vbCByZXN1bHQpCisgICAgICAgICAgICA6IGltcGwoV1RGTW92
ZShpbXBsKSkKICAgICAgICAgICAgICwgc3RydWN0dXJlSUQoc3RydWN0dXJlSUQpCiAgICAgICAg
ICAgICAsIHJlc3VsdChyZXN1bHQpCi0gICAgICAgIHsKLSAgICAgICAgfQorICAgICAgICB7IH0K
IAogICAgICAgICBFbnRyeSYgb3BlcmF0b3I9KEVudHJ5JiYgb3RoZXIpCiAgICAgICAgIHsKQEAg
LTEyMiw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCog
aW1wbCA9IHByb3BOYW1lLnVpZCgpOwogICAgICAgICAgICAgU3RydWN0dXJlSUQgaWQgPSBzdHJ1
Y3R1cmUtPmlkKCk7CiAgICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IEhhc093blByb3BlcnR5
Q2FjaGU6Omhhc2goaWQsIGltcGwpICYgbWFzazsKLSAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxF
bnRyeSo+KHRoaXMpW2luZGV4XSA9IEVudHJ5eyBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+KGlt
cGwpLCBpZCwgcmVzdWx0IH07CisgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8RW50cnkqPih0aGlz
KVtpbmRleF0gPSBFbnRyeShSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+KGltcGwpLCBpZCwgcmVz
dWx0KTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>
<flag name="review"
          id="314953"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291847</attachid>
            <date>2016-10-17 11:42:07 -0700</date>
            <delta_ts>2016-10-17 13:36:57 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>1964</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3NDE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE2LTEwLTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEJ1aWxkIGZpeCBmb3IgSGFzT3duUHJvcGVydHlDYWNoZTo6RW50cnkgY2F1c2VkIHNsb3dkb3du
IGJ5IGludHJvZHVjaW5nIGEgY29uc3RydWN0b3IgdGhhdCBkb2Vzbid0IHVzZSBtb3ZlIHNlbWFu
dGljcyBmb3IgdGhlIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gcGFyYW1ldGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0OTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHJ1bnRpbWUvSGFzT3duUHJv
cGVydHlDYWNoZS5oOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjpFbnRyeTo6
RW50cnkpOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjp0cnlBZGQpOgorCiAy
MDE2LTEwLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ug
dGhlIHJlamVjdCgpIGhlbHBlciBmdW5jdGlvbiBmb3IgY29uZGl0aW9uYWxseSB0aHJvd2luZyBU
eXBlRXJyb3JzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJv
cGVydHlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0hhc093blByb3BlcnR5Q2FjaGUuaAkocmV2aXNpb24gMjA3NDE3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJvcGVydHlDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NCwxMiArNDQsMTEgQEAgcHVibGljOgogCiAgICAgICAgIEVudHJ5KCkgPSBkZWZhdWx0Owog
Ci0gICAgICAgIEVudHJ5KFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gaW1wbCwgU3RydWN0dXJl
SUQgc3RydWN0dXJlSUQsIGJvb2wgcmVzdWx0KQotICAgICAgICAgICAgOiBpbXBsKGltcGwpCisg
ICAgICAgIEVudHJ5KFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4mJiBpbXBsLCBTdHJ1Y3R1cmVJ
RCBzdHJ1Y3R1cmVJRCwgYm9vbCByZXN1bHQpCisgICAgICAgICAgICA6IGltcGwoV1RGTW92ZShp
bXBsKSkKICAgICAgICAgICAgICwgc3RydWN0dXJlSUQoc3RydWN0dXJlSUQpCiAgICAgICAgICAg
ICAsIHJlc3VsdChyZXN1bHQpCi0gICAgICAgIHsKLSAgICAgICAgfQorICAgICAgICB7IH0KIAog
ICAgICAgICBFbnRyeSYgb3BlcmF0b3I9KEVudHJ5JiYgb3RoZXIpCiAgICAgICAgIHsKQEAgLTEy
Miw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogaW1w
bCA9IHByb3BOYW1lLnVpZCgpOwogICAgICAgICAgICAgU3RydWN0dXJlSUQgaWQgPSBzdHJ1Y3R1
cmUtPmlkKCk7CiAgICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IEhhc093blByb3BlcnR5Q2Fj
aGU6Omhhc2goaWQsIGltcGwpICYgbWFzazsKLSAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxFbnRy
eSo+KHRoaXMpW2luZGV4XSA9IEVudHJ5eyBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+KGltcGwp
LCBpZCwgcmVzdWx0IH07CisgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8RW50cnkqPih0aGlzKVtp
bmRleF0gPSBFbnRyeSB7IFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4oaW1wbCksIGlkLCByZXN1
bHQgfTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>