<?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>164642</bug_id>
          
          <creation_ts>2016-11-11 10:35:15 -0800</creation_ts>
          <short_desc>Allow mutable lambdas in HashMap::ensure</short_desc>
          <delta_ts>2016-11-16 12:32:04 -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>New Bugs</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250281</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-11 10:35:15 -0800</bug_when>
    <thetext>Allow mutable lambdas in HashMap::ensure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250282</commentid>
    <comment_count>1</comment_count>
      <attachid>294505</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-11 10:35:59 -0800</bug_when>
    <thetext>Created attachment 294505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250306</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-11 11:14:48 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/208600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250678</commentid>
    <comment_count>3</comment_count>
      <attachid>294505</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-12 10:11:06 -0800</bug_when>
    <thetext>Comment on attachment 294505
Patch

Neat!  I didn&apos;t know about mutable lambdas until this patch made me look them up.  Do we have a plan for how far to push rvalue reference lambdas?  Is the idea that all const lambda references would go away, or something else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251084</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-14 12:19:49 -0800</bug_when>
    <thetext>It&apos;s probable that we&apos;ll need to change more const lambda references to universal references.  Trying to find them all would be good, but any such attempt would probably miss some.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251965</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-16 12:32:04 -0800</bug_when>
    <thetext>Interesting, I also didn&apos;t know mutable lambdas were a thing. I&apos;ve definitely written code that should&apos;ve just been a mutable lambda but instead I had copying code in the body of the lambda.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294505</attachid>
            <date>2016-11-11 10:35:59 -0800</date>
            <delta_ts>2016-11-11 10:47:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164642-20161111103150.patch</filename>
            <type>text/plain</type>
            <size>6164</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDg1MDApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTExLTExICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWxsb3cgbXV0YWJsZSBsYW1iZGFz
IGluIEhhc2hNYXA6OmVuc3VyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvSGFzaE1hcC5oOgorICAgICAgICAoV1RGOjpIYXNoTWFwRW5zdXJl
VHJhbnNsYXRvcjo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdURjo6WD46OnJlbW92ZUlmKToKKwog
MjAxNi0xMS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFsbG93IFJlZlB0cnMgb2YgY29uc3QgVGhyZWFkU2FmZVJlZkNvdW50ZWQgdHlw
ZXMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9IYXNoTWFwLmgJKHJldmlzaW9uIDIwODUwMCkKKysrIFNvdXJjZS9XVEYvd3RmL0hh
c2hNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDEzICsxMjIsMTMgQEAgcHVibGljOgogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFY+IEFkZFJlc3VsdCBmYXN0QWRkKGNvbnN0IEtleVR5cGUmLCBW
JiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFY+IEFkZFJlc3VsdCBmYXN0QWRkKEtleVR5cGUm
JiwgViYmKTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IEFkZFJlc3VsdCBlbnN1
cmUoY29uc3QgS2V5VHlwZSYsIGNvbnN0IEZ1bmN0b3ImKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBGdW5jdG9yPiBBZGRSZXN1bHQgZW5zdXJlKEtleVR5cGUmJiwgY29uc3QgRnVuY3RvciYpOwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IEFkZFJlc3VsdCBlbnN1cmUoY29uc3QgS2V5
VHlwZSYsIEZ1bmN0b3ImJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gQWRkUmVz
dWx0IGVuc3VyZShLZXlUeXBlJiYsIEZ1bmN0b3ImJik7CiAKICAgICBib29sIHJlbW92ZShjb25z
dCBLZXlUeXBlJik7CiAgICAgYm9vbCByZW1vdmUoaXRlcmF0b3IpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCByZW1vdmVJZihjb25zdCBGdW5jdG9yJiBmdW5jdG9y
KTsKKyAgICB2b2lkIHJlbW92ZUlmKEZ1bmN0b3ImJik7CiAgICAgdm9pZCBjbGVhcigpOwogCiAg
ICAgTWFwcGVkVGFrZVR5cGUgdGFrZShjb25zdCBLZXlUeXBlJik7IC8vIGVmZmljaWVudCBjb21i
aW5hdGlvbiBvZiBnZXQgd2l0aCByZW1vdmUKQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgog
ICAgIEFkZFJlc3VsdCBpbmxpbmVBZGQoSyYmLCBWJiYpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgSywgdHlwZW5hbWUgRj4KLSAgICBBZGRSZXN1bHQgaW5saW5lRW5zdXJlKEsmJiwgY29uc3Qg
RiYpOworICAgIEFkZFJlc3VsdCBpbmxpbmVFbnN1cmUoSyYmLCBGJiYpOwogCiAgICAgSGFzaFRh
YmxlVHlwZSBtX2ltcGw7CiB9OwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFZhbHVlVHJhaXRzLCB0eXBlbmFtZSAKIHN0cnVjdCBIYXNoTWFwRW5zdXJlVHJhbnNsYXRvciB7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVCYg
a2V5KSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjpoYXNoKGtleSk7IH0KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBUJiBhLCBjb25z
dCBVJiBiKSB7IHJldHVybiBIYXNoRnVuY3Rpb25zOjplcXVhbChhLCBiKTsgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIEZ1bmN0b3I+IHN0YXRpYyB2b2lk
IHRyYW5zbGF0ZShUJiBsb2NhdGlvbiwgVSYmIGtleSwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBGdW5jdG9yPiBz
dGF0aWMgdm9pZCB0cmFuc2xhdGUoVCYgbG9jYXRpb24sIFUmJiBrZXksIEZ1bmN0b3ImJiBmdW5j
dG9yKQogICAgIHsKICAgICAgICAgVmFsdWVUcmFpdHM6OktleVRyYWl0czo6YXNzaWduVG9FbXB0
eShsb2NhdGlvbi5rZXksIHN0ZDo6Zm9yd2FyZDxVPihrZXkpKTsKICAgICAgICAgVmFsdWVUcmFp
dHM6OlZhbHVlVHJhaXRzOjphc3NpZ25Ub0VtcHR5KGxvY2F0aW9uLnZhbHVlLCBmdW5jdG9yKCkp
OwpAQCAtMzE5LDkgKzMxOSw5IEBAIEFMV0FZU19JTkxJTkUgYXV0byBIYXNoTWFwPEtleUFyZywg
TWFwcGUKIAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5
cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJh
aXRzQXJnPgogdGVtcGxhdGU8dHlwZW5hbWUgSywgdHlwZW5hbWUgRj4KLUFMV0FZU19JTkxJTkUg
YXV0byBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1h
cHBlZFRyYWl0c0FyZz46OmlubGluZUVuc3VyZShLJiYga2V5LCBjb25zdCBGJiBmdW5jdG9yKSAt
PiBBZGRSZXN1bHQKK0FMV0FZU19JTkxJTkUgYXV0byBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJn
LCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz46OmlubGluZUVuc3VyZShL
JiYga2V5LCBGJiYgZnVuY3RvcikgLT4gQWRkUmVzdWx0CiB7Ci0gICAgcmV0dXJuIG1faW1wbC50
ZW1wbGF0ZSBhZGQ8SGFzaE1hcEVuc3VyZVRyYW5zbGF0b3I8S2V5VmFsdWVQYWlyVHJhaXRzLCBI
YXNoRnVuY3Rpb25zPj4oc3RkOjpmb3J3YXJkPEs+KGtleSksIGZ1bmN0b3IpOworICAgIHJldHVy
biBtX2ltcGwudGVtcGxhdGUgYWRkPEhhc2hNYXBFbnN1cmVUcmFuc2xhdG9yPEtleVZhbHVlUGFp
clRyYWl0cywgSGFzaEZ1bmN0aW9ucz4+KHN0ZDo6Zm9yd2FyZDxLPihrZXkpLCBzdGQ6OmZvcndh
cmQ8Rj4oZnVuY3RvcikpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1l
IE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBl
bmFtZSBNYXBwZWRUcmFpdHNBcmc+CkBAIC0zNzUsMTYgKzM3NSwxNiBAQCBBTFdBWVNfSU5MSU5F
IGF1dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlCiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNB
cmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZz4KIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+
Ci1hdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywg
TWFwcGVkVHJhaXRzQXJnPjo6ZW5zdXJlKGNvbnN0IEtleVR5cGUmIGtleSwgY29uc3QgRnVuY3Rv
ciYgZnVuY3RvcikgLT4gQWRkUmVzdWx0CithdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcs
IEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6ZW5zdXJlKGNvbnN0IEtl
eVR5cGUmIGtleSwgRnVuY3RvciYmIGZ1bmN0b3IpIC0+IEFkZFJlc3VsdAogewotICAgIHJldHVy
biBpbmxpbmVFbnN1cmUoa2V5LCBmdW5jdG9yKTsKKyAgICByZXR1cm4gaW5saW5lRW5zdXJlKGtl
eSwgc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1l
IEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnPgogdGVtcGxhdGU8dHlwZW5h
bWUgRnVuY3Rvcj4KLWF1dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5
VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+OjplbnN1cmUoS2V5VHlwZSYmIGtleSwgY29uc3Qg
RnVuY3RvciYgZnVuY3RvcikgLT4gQWRkUmVzdWx0CithdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBw
ZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6ZW5zdXJlKEtl
eVR5cGUmJiBrZXksIEZ1bmN0b3ImJiBmdW5jdG9yKSAtPiBBZGRSZXN1bHQKIHsKLSAgICByZXR1
cm4gaW5saW5lRW5zdXJlKFdURk1vdmUoa2V5KSwgZnVuY3Rvcik7CisgICAgcmV0dXJuIGlubGlu
ZUVuc3VyZShzdGQ6OmZvcndhcmQ8S2V5VHlwZT4oa2V5KSwgc3RkOjpmb3J3YXJkPEZ1bmN0b3I+
KGZ1bmN0b3IpKTsKIH0KICAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5
cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KQEAgLTQxNyw5ICs0
MTcsOSBAQCBpbmxpbmUgYm9vbCBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpyZW1vCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVu
YW1lIFg+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotaW5saW5lIHZvaWQgSGFzaE1hcDxU
LCBVLCBWLCBXLCBYPjo6cmVtb3ZlSWYoY29uc3QgRnVuY3RvciYgZnVuY3RvcikKK2lubGluZSB2
b2lkIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OnJlbW92ZUlmKEZ1bmN0b3ImJiBmdW5jdG9yKQog
ewotICAgIG1faW1wbC5yZW1vdmVJZihmdW5jdG9yKTsKKyAgICBtX2ltcGwucmVtb3ZlSWYoc3Rk
Ojpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KSW5kZXg6IFRv
b2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIw
ODU5MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTExLTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWxsb3cgbXV0YWJsZSBsYW1iZGFzIGluIEhhc2hNYXA6OmVuc3VyZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NjQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorCiAyMDE2LTExLTExICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtKSGJ1aWxkXSBidW1wIGxpYm5pY2UgdmVyc2lvbiBpbiBvcGVud2Vi
cnRjLm1vZHVsZXMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAu
Y3BwCShyZXZpc2lvbiAyMDg1MDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
YXNoTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODk1LDcgKzg5NSw3IEBAIFRFU1QoV1RGX0hh
c2hNYXAsIFJlZl9WYWx1ZSkKICAgICAgICAgSGFzaE1hcDxpbnQsIFJlZjxSZWZMb2dnZXI+PiBt
YXA7CiAKICAgICAgICAgUmVmTG9nZ2VyIGEoImEiKTsKLSAgICAgICAgbWFwLmVuc3VyZSgxLCBb
Jl0oKSB7IAorICAgICAgICBtYXAuZW5zdXJlKDEsIFsmXSgpIG11dGFibGUgewogICAgICAgICAg
ICAgUmVmPFJlZkxvZ2dlcj4gcmVmKGEpOwogICAgICAgICAgICAgcmV0dXJuIHJlZjsgCiAgICAg
ICAgIH0pOwo=
</data>
<flag name="review"
          id="317183"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>