<?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>120799</bug_id>
          
          <creation_ts>2013-09-05 14:45:16 -0700</creation_ts>
          <short_desc>Make Vector::uncheckedAppend work with move-only types</short_desc>
          <delta_ts>2013-09-06 10:02:55 -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>New Bugs</component>
          <version>528+ (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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>925228</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-05 14:45:16 -0700</bug_when>
    <thetext>Make Vector::uncheckedAppend work with move-only types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925230</commentid>
    <comment_count>1</comment_count>
      <attachid>210667</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-05 14:46:52 -0700</bug_when>
    <thetext>Created attachment 210667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925231</commentid>
    <comment_count>2</comment_count>
      <attachid>210667</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-05 14:50:08 -0700</bug_when>
    <thetext>Comment on attachment 210667
Patch

Awesome! Can&apos;t wait for append()!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925232</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-05 14:51:33 -0700</bug_when>
    <thetext>Committed r155152: &lt;http://trac.webkit.org/changeset/155152&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925333</commentid>
    <comment_count>4</comment_count>
      <attachid>210667</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-05 18:04:38 -0700</bug_when>
    <thetext>Comment on attachment 210667
Patch

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

&gt; Source/WTF/wtf/Vector.h:646
&gt; +    template&lt;typename U&gt; void uncheckedAppend(U&amp;&amp; val);

Does removing the old version cause any problems if we want to append something given a const&amp;?

Why name this argument, val, here?

&gt; Source/WTF/wtf/Vector.h:1071
&gt; +inline void Vector&lt;T, inlineCapacity, OverflowHandler&gt;::uncheckedAppend(U&amp;&amp; val)

Why val? How about a word instead of this abbreviation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925695</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-06 10:02:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 210667 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=210667&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Vector.h:646
&gt; &gt; +    template&lt;typename U&gt; void uncheckedAppend(U&amp;&amp; val);
&gt; 
&gt; Does removing the old version cause any problems if we want to append something given a const&amp;?

Nope, what happens if you pass a const T&amp; to it is that U&amp;&amp; will become “const T&amp;” &amp;&amp; and reference collapsing will turn that into const T&amp;:

struct A { };

template&lt;typename T&gt; void f(T&amp;&amp;)
{
    static_assert(std::is_same&lt;T, const A&amp;&gt;::value, &quot;&quot;);
}

void g(const A&amp; a) { f(a); }

&gt; 
&gt; Why name this argument, val, here?

Good point, I’ll fix.

&gt; 
&gt; &gt; Source/WTF/wtf/Vector.h:1071
&gt; &gt; +inline void Vector&lt;T, inlineCapacity, OverflowHandler&gt;::uncheckedAppend(U&amp;&amp; val)
&gt; 
&gt; Why val? How about a word instead of this abbreviation.

Yeah, will fix this too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210667</attachid>
            <date>2013-09-05 14:46:52 -0700</date>
            <delta_ts>2013-09-05 18:04:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120799-20130905144651.patch</filename>
            <type>text/plain</type>
            <size>4164</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI4ZjFlY2ZiODZlY2NjYTQ1YjQ3MGU1
N2QxOTdkNzI2ZjQzNDRlNWQuLjllMWQ0NmRmNTI2NDg2NTRiMDMzZDRmYTVmNzNjZGViODk0ZTNi
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTMtMDktMDUgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBNYWtlIFZlY3Rvcjo6dW5jaGVja2VkQXBwZW5k
IHdvcmsgd2l0aCBtb3ZlLW9ubHkgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDc5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjo6OnVuY2hl
Y2tlZEFwcGVuZCk6CisgICAgICAgIFVzZSBzdGQ6OmZvcndhcmQgdG8gaW52b2tlIHRoZSBtb3Zl
IGNvbnN0cnVjdG9yIHdoZW4gcG9zc2libGUuCisKKzIwMTMtMDktMDUgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGQgQ09NUElMRVJfU1VQUE9SVFMo
Q1hYX0FVVE9fVFlQRSkgYW5kICNlcnJvciBpZiBpdCdzIDAKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDc5NAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IDU4MzFlYzQw
NTc4ZjA4YTk3YjdiZDA1NjJlMjQ4YzYzOTJkNTIxYTcuLjljYjdhZWRkNWMzZmYxZThjNjNjOWNh
OWYwZDFiYjRiNDc4MjdmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC02NDMsNyArNjQzLDcgQEAgcHVibGljOgog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBhcHBlbmQoY29uc3QgVSosIHNpemVfdCk7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBhcHBlbmQoY29uc3QgVSYpOwotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgdW5jaGVja2VkQXBwZW5kKGNvbnN0IFUmIHZhbCk7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCB1bmNoZWNrZWRBcHBlbmQoVSYmIHZhbCk7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVSwgc2l6ZV90IG90aGVyQ2FwYWNpdHk+IHZvaWQgYXBwZW5k
VmVjdG9yKGNvbnN0IFZlY3RvcjxVLCBvdGhlckNhcGFjaXR5PiYpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFU+IGJvb2wgdHJ5QXBwZW5kKGNvbnN0IFUqLCBzaXplX3QpOwogCkBAIC0xMDY4LDEx
ICsxMDY4LDExIEBAIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXI+OjphcHBlbmRTbG93Q2FzZShjb25zdCBVJiB2YWwpCiAvLyB2ZWN0b3IncyBjYXBhY2l0eSBp
cyBsYXJnZSBlbm91Z2ggZm9yIHRoZSBhcHBlbmQgdG8gc3VjY2VlZC4KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+
IHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci1pbmxpbmUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlcj46OnVuY2hlY2tlZEFwcGVuZChjb25zdCBVJiB2YWwpCitpbmxp
bmUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj46OnVuY2hl
Y2tlZEFwcGVuZChVJiYgdmFsKQogewogICAgIEFTU0VSVChzaXplKCkgPCBjYXBhY2l0eSgpKTsK
LSAgICBjb25zdCBVKiBwdHIgPSAmdmFsOwotICAgIG5ldyAoTm90TnVsbCwgZW5kKCkpIFQoKnB0
cik7CisgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlKiBwdHIgPSAm
dmFsOworICAgIG5ldyAoTm90TnVsbCwgZW5kKCkpIFQoc3RkOjpmb3J3YXJkPFU+KCpwdHIpKTsK
ICAgICArK21fc2l6ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGUyNWU3MDZhYzA2ZjRhOWJkM2YzNWVhYmQzNmJkNmY3OTZkMGZmNjIu
LjJmZGIyZWY1ZTc3YjZjYzJiNDEzYzA4ZjY0MzM4NzdmZjg1MDZlMWYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAx
My0wOS0wNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAg
IE1ha2UgVmVjdG9yOjp1bmNoZWNrZWRBcHBlbmQgd29yayB3aXRoIG1vdmUtb25seSB0eXBlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNzk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6TW92
ZU9ubHkpOgorICAgICAgICBBZGQgYSBtb3ZlLW9ubHkgY2xhc3MuCisKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBBZGQgYSB0ZXN0IGZvciBWZWN0b3I8TW92ZU9ubHk+
Ojp1bmNoZWNrZWRBcHBlbmQuCisKKzIwMTMtMDktMDUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBNb3ZlIGFsbCBWZWN0b3IgdGVzdHMgaW50byBWZWN0
b3IuY3BwCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjA3OTcKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggYWEy
MTQwNmVmZmJmM2VmMzI2Mzk5ZDQ0NmRhNDEwY2JlNzkzNjJkMC4uYzFhMDMwZWE5NjlhMjdmZTAz
MzA5MmE5MmMzODIxMGJlZTE4NzQ4OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9W
ZWN0b3IuY3BwCkBAIC0xMDgsNCArMTA4LDUxIEBAIFRFU1QoV1RGX1ZlY3RvciwgUmV2ZXJzZUl0
ZXJhdG9yKQogICAgIEVYUEVDVF9UUlVFKGVuZCA9PSBpdCk7CiB9CiAKK2NsYXNzIE1vdmVPbmx5
IHsKK3B1YmxpYzoKKyAgICBNb3ZlT25seSh1bnNpZ25lZCB2YWx1ZSkKKyAgICAgICAgOiBtX3Zh
bHVlKHZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB2YWx1ZSgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICB9CisKKyAgICBNb3ZlT25seShNb3Zl
T25seSYmIG90aGVyKQorICAgICAgICA6IG1fdmFsdWUob3RoZXIubV92YWx1ZSkKKyAgICB7Cisg
ICAgICAgIG90aGVyLm1fdmFsdWUgPSAwOworICAgIH0KKworICAgIE1vdmVPbmx5JiBvcGVyYXRv
cj0oTW92ZU9ubHkmJiBvdGhlcikKKyAgICB7CisgICAgICAgIGlmICh0aGlzID09ICZvdGhlcikK
KyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKworICAgICAgICBtX3ZhbHVlID0gb3RoZXIubV92
YWx1ZTsKKyAgICAgICAgb3RoZXIubV92YWx1ZSA9IDA7CisgICAgICAgIHJldHVybiAqdGhpczsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV92YWx1ZTsKK307CisKK1RFU1QoV1RG
X1ZlY3RvciwgTW92ZU9ubHlfVW5jaGVja2VkQXBwZW5kKQoreworICAgIFZlY3RvcjxNb3ZlT25s
eT4gdmVjdG9yOworCisgICAgdmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMTAwKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgIE1vdmVPbmx5IG1v
dmVPbmx5KGkpOworICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKHN0ZDo6bW92ZShtb3Zl
T25seSkpOworICAgICAgICBFWFBFQ1RfRVEobW92ZU9ubHkudmFsdWUoKSwgMFUpOworICAgIH0K
KworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIEVYUEVDVF9F
USh2ZWN0b3JbaV0udmFsdWUoKSwgaSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkK
</data>
<flag name="review"
          id="232759"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>