<?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>121192</bug_id>
          
          <creation_ts>2013-09-11 16:58:27 -0700</creation_ts>
          <short_desc>Add HashSet::take</short_desc>
          <delta_ts>2013-09-11 17:30:07 -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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928044</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 16:58:27 -0700</bug_when>
    <thetext>Add HashSet::take</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928046</commentid>
    <comment_count>1</comment_count>
      <attachid>211367</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 17:11:01 -0700</bug_when>
    <thetext>Created attachment 211367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928047</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-11 17:14:49 -0700</bug_when>
    <thetext>Attachment 211367 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/HashMap.h&apos;, u&apos;Source/WTF/wtf/HashSet.h&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/HashSet.h:239:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928048</commentid>
    <comment_count>3</comment_count>
      <attachid>211367</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-11 17:17:09 -0700</bug_when>
    <thetext>Comment on attachment 211367
Patch

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

In a recent patch I was working on, it was ListHashSet::take that I needed.

&gt; Source/WTF/wtf/HashSet.h:238
&gt; +    auto HashSet&lt;T, U, V&gt;::take(const ValueType&amp; value) -&gt; ValueType

This works in all the compilers we support?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928050</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-11 17:18:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; In a recent patch I was working on, it was ListHashSet::take that I needed.

No, wait, it was HashSet::take, because I wanted to take an element out of a set; I always took the one at begin().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928051</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 17:21:53 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This works in all the compilers we support?

I think so, it was added in VS2010 and GCC 4.4 (and clang 2.9).

(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; In a recent patch I was working on, it was ListHashSet::take that I needed.
&gt; 
&gt; No, wait, it was HashSet::take, because I wanted to take an element out of a set; I always took the one at begin().

That makes me think we should add a take(iterator) overload as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928054</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-11 17:24:25 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; No, wait, it was HashSet::take, because I wanted to take an element out of a set; I always took the one at begin().
&gt; 
&gt; That makes me think we should add a take(iterator) overload as well.

It was a security bug, bug 121033, if you want to look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928056</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-11 17:25:48 -0700</bug_when>
    <thetext>It might be nice to have s.takeRandom() or s.takeAny() rather than s.take(s.begin()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928059</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 17:30:07 -0700</bug_when>
    <thetext>Committed r155580: &lt;http://trac.webkit.org/changeset/155580&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211367</attachid>
            <date>2013-09-11 17:11:01 -0700</date>
            <delta_ts>2013-09-11 17:17:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121192-20130911171100.patch</filename>
            <type>text/plain</type>
            <size>3813</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgzZjVkNzllMWIxMTBjZDA0Yjg4NmI1
YWM0MTBiNjBhMTQ4MjEwNWIuLjE0ZmE3NDljYjFmYmQ3YzhkZDAwODkyZGIwN2NhZDI2NjMxZGVl
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTMtMDktMTEgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgSGFzaFNldDo6dGFrZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMTkyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBtb3N0bHkgZG9u
ZSB0byBzZWUgaWYgd2UgY2FuIHVzZSB0aGUgbmV3IEMrKzExIGZ1bmN0aW9uIGRlY2xhcmF0aW9u
IHN5bnRheCwKKyAgICAgICAgYW5kIGZvciBwYXJpdHkgd2l0aCBIYXNoTWFwOjp0YWtlLiAKKwor
ICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3RmL0hhc2hTZXQuaDoKKworMjAx
My0wOS0xMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAg
IEhhc2hTZXQgc2hvdWxkIHdvcmsgd2l0aCBtb3ZlIG9ubHkgdHlwZXMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTE4OAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKaW5kZXgg
MDM3YmFmMWVjOWYxYWY0YWRkMDYwZWE0MTU0ZGQ2NGU4ZDgzZWJjNi4uZTcwZDNiZGEyNGQyNThi
MGM4Zjk4MGI4N2VlMDI2ZGNlNDlmNmYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFz
aE1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaApAQCAtNDAyLDggKzQwMiw3IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KLSAg
ICB0eXBlbmFtZSBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46Ok1hcHBlZFBhc3NP
dXRUeXBlCi0gICAgSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBwZWRUcmFpdHM+Ojp0YWtlKGNvbnN0
IEtleVR5cGUmIGtleSkKKyAgICBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgTWFwcGVkVHJhaXRz
Pjo6dGFrZShjb25zdCBLZXlUeXBlJiBrZXkpIC0+IE1hcHBlZFBhc3NPdXRUeXBlCiAgICAgewog
ICAgICAgICBpdGVyYXRvciBpdCA9IGZpbmQoa2V5KTsKICAgICAgICAgaWYgKGl0ID09IGVuZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFNldC5oIGIvU291cmNlL1dURi93dGYv
SGFzaFNldC5oCmluZGV4IDg4NDU0MGM4MTIzMzI4OGNmNzE3MTdmYTVmOGM1YTUxNjM4ZDUwODgu
Ljg3NzIxMjZmMmZjMWIxNDcwZmM1YmRlNDc1YTgzOTNjMGU4OTU2NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmgKQEAg
LTkzLDYgKzkzLDggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGJvb2wgcmVtb3ZlKGl0ZXJh
dG9yKTsKICAgICAgICAgdm9pZCBjbGVhcigpOwogCisgICAgICAgIFZhbHVlVHlwZSB0YWtlKGNv
bnN0IFZhbHVlVHlwZSYpOworCiAgICAgICAgIHN0YXRpYyBib29sIGlzVmFsaWRWYWx1ZShjb25z
dCBWYWx1ZVR5cGUmKTsKICAgICAgICAgCiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBI
YXNoU2V0JikgY29uc3Q7CkBAIC0yMzMsNiArMjM1LDE4IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+Cisg
ICAgYXV0byBIYXNoU2V0PFQsIFUsIFY+Ojp0YWtlKGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIC0+
IFZhbHVlVHlwZQorICAgIHsKKyAgICAgICAgYXV0byBpdCA9IGZpbmQodmFsdWUpOworICAgICAg
ICBpZiAoaXQgPT0gZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gVmFsdWVUcmFpdHM6OmVtcHR5
VmFsdWUoKTsKKworICAgICAgICBWYWx1ZVR5cGUgcmVzdWx0ID0gc3RkOjptb3ZlKGNvbnN0X2Nh
c3Q8VmFsdWVUeXBlJj4oKml0KSk7CisgICAgICAgIHJlbW92ZShpdCk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwg
dHlwZW5hbWUgVj4KICAgICBpbmxpbmUgYm9vbCBIYXNoU2V0PFQsIFUsIFY+Ojppc1ZhbGlkVmFs
dWUoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChWYWx1ZVRyYWl0
czo6aXNEZWxldGVkVmFsdWUodmFsdWUpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQzYTlkZTM1MDIyYTVmZWVhNzYwYTEzN2MyODAyZTk2NzE2
OTY3YzYuLmM1NDMwYzE0NmVlNGNhYWViYmMzZjc2ZDg5ZDE1MzFlYTUyNWMwMTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBA
QAogMjAxMy0wOS0xMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisg
ICAgICAgIEFkZCBIYXNoU2V0Ojp0YWtlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjExOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGZvciBIYXNoU2V0Ojp0YWtlLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKworMjAxMy0wOS0xMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgorCiAgICAgICAgIEhhc2hTZXQgc2hvdWxkIHdvcmsgd2l0aCBtb3ZlIG9ubHkg
dHlwZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MTE4OAogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwCmluZGV4IGJl
ZmI5YTkwNmI1NTgyZjg1NWEzMDMzMTY2MWEzMmFkOTE2MjNiZGUuLjg4ZTdkMDc1ZmQyOTI3ZDk3
MWU0NDQzYzFlMzVlZGE1YzI2Y2RmN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hhc2hTZXQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0hhc2hTZXQuY3BwCkBAIC05NCw2ICs5NCwxMyBAQCBURVNUKFdURl9IYXNoU2V0LCBNb3ZlT25s
eSkKICAgICAgICAgRVhQRUNUX1RSVUUoaGFzaFNldC5yZW1vdmUoTW92ZU9ubHkoaSArIDEpKSk7
CiAKICAgICBFWFBFQ1RfVFJVRShoYXNoU2V0LmlzRW1wdHkoKSk7CisKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBoYXNoU2V0LmFkZChzdGQ6Om1vdmUoTW92
ZU9ubHkoaSArIDEpKSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKQor
ICAgICAgICBFWFBFQ1RfVFJVRShoYXNoU2V0LnRha2UoTW92ZU9ubHkoaSArIDEpKSA9PSBNb3Zl
T25seShpICsgMSkpOworCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="233453"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>