<?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>75610</bug_id>
          
          <creation_ts>2012-01-05 01:05:48 -0800</creation_ts>
          <short_desc>push/shift fifo may consume excessive memory</short_desc>
          <delta_ts>2012-01-05 11:35:42 -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>JavaScriptCore</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>
          
          <blocked>75140</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>530082</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-05 01:05:48 -0800</bug_when>
    <thetext>Array object commonly store data in a vector, consisting of a portion that is in use, a pre-capacity (m_indexBias) and a post-capacity (the delta between m_length and m_vectorLength).  Calls to shift with grow the pre-capacity, and the current algorithm for increaseVectorLength (used by push, or [[Put]]) will never shrink the pre-capacity, so a push/shift fifo may consume an inordinate amount of memory, whilst having a relatively small active length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530086</commentid>
    <comment_count>1</comment_count>
      <attachid>121237</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-05 01:13:17 -0800</bug_when>
    <thetext>Created attachment 121237
Fix

10% overall speedup on the micro-benchmark attached to bug #75588 , largely due to a 20x speedup on the two smaller fifo tests (I think this makes sense - they&apos;ll currently be serving as tests for the OS&apos;s memory allocation speed!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530358</commentid>
    <comment_count>2</comment_count>
      <attachid>121237</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 09:40:03 -0800</bug_when>
    <thetext>Comment on attachment 121237
Fix

Attachment 121237 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11146007

New failing tests:
http/tests/inspector/network/download.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530456</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-05 11:19:24 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 121237 [details])
&gt; Attachment 121237 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11146007
&gt; 
&gt; New failing tests:
&gt; http/tests/inspector/network/download.html

Works for me, and this bug doesn&apos;t affect Chromium.  Bad EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530476</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-01-05 11:35:28 -0800</bug_when>
    <thetext>Fixed in 104184.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121237</attachid>
            <date>2012-01-05 01:13:17 -0800</date>
            <delta_ts>2012-01-05 11:14:33 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>75610.patch</filename>
            <type>text/plain</type>
            <size>4555</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA0MTIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEyLTAxLTA1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBwdXNoL3NoaWZ0IGZpZm8gbWF5IGNvbnN1bWUgZXhjZXNzaXZlIG1lbW9yeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcnJheSBvYmpl
Y3QgY29tbW9ubHkgc3RvcmUgZGF0YSBpbiBhIHZlY3RvciwgY29uc2lzdGluZyBvZiBhIHBvcnRp
b24gdGhhdCBpcworICAgICAgICBpbiB1c2UsIGEgcHJlLWNhcGFjaXR5IChtX2luZGV4Qmlhcykg
YW5kIGEgcG9zdC1jYXBhY2l0eSAodGhlIGRlbHRhIGJldHdlZW4KKyAgICAgICAgbV9sZW5ndGgg
YW5kIG1fdmVjdG9yTGVuZ3RoKS4gQ2FsbHMgdG8gc2hpZnQgd2l0aCBncm93IHRoZSBwcmUtY2Fw
YWNpdHksIGFuZAorICAgICAgICB0aGUgY3VycmVudCBhbGdvcml0aG0gZm9yIGluY3JlYXNlVmVj
dG9yTGVuZ3RoICh1c2VkIGJ5IHB1c2gsIG9yIFtbUHV0XV0pIHdpbGwKKyAgICAgICAgbmV2ZXIg
c2hyaW5rIHRoZSBwcmUtY2FwYWNpdHksIHNvIGEgcHVzaC9zaGlmdCBmaWZvIG1heSBjb25zdW1l
IGFuIGlub3JkaW5hdGUKKyAgICAgICAgYW1vdW50IG9mIG1lbW9yeSwgd2hpbHN0IGhhdmluZyBh
IHJlbGF0aXZlbHkgc21hbGwgYWN0aXZlIGxlbmd0aC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNB
cnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKToK
KyAgICAgICAgICAgIC0gSWYgbV9pbmRleEJpYXMgaXMgbm9uLXplcm8sIGRlY2F5IGl0IG92ZXIg
dGltZS4KKwogMjAxMi0wMS0wNCAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgdW5zaGlmdC9wb3AgZmlmbyBtYXkgY29uc3VtZSBleGNlc3NpdmUg
bWVtb3J5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAko
cmV2aXNpb24gMTA0MTIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NCwxOSArNTU0LDUwIEBAIGJvb2wgSlNBcnJheTo6
aW5jcmVhc2VWZWN0b3JMZW5ndGgodW5zaWcKICAgICB1bnNpZ25lZCBuZXdWZWN0b3JMZW5ndGgg
PSBnZXROZXdWZWN0b3JMZW5ndGgobmV3TGVuZ3RoKTsKICAgICB2b2lkKiBiYXNlU3RvcmFnZSA9
IHN0b3JhZ2UtPm1fYWxsb2NCYXNlOwogCi0gICAgaWYgKCF0cnlGYXN0UmVhbGxvYyhiYXNlU3Rv
cmFnZSwgc3RvcmFnZVNpemUobmV3VmVjdG9yTGVuZ3RoICsgbV9pbmRleEJpYXMpKS5nZXRWYWx1
ZShiYXNlU3RvcmFnZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBGYXN0IGNhc2Ug
LSB0aGVyZSBpcyBubyBwcmVjYXBhY2l0eS4gSW4gdGhlc2UgY2FzZXMgYSByZWFsbG9jIG1ha2Vz
IHNlbnNlLgorICAgIGlmIChMSUtFTFkoIW1faW5kZXhCaWFzKSkgeworICAgICAgICBpZiAoIXRy
eUZhc3RSZWFsbG9jKGJhc2VTdG9yYWdlLCBzdG9yYWdlU2l6ZShuZXdWZWN0b3JMZW5ndGgpKS5n
ZXRWYWx1ZShiYXNlU3RvcmFnZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBz
dG9yYWdlID0gbV9zdG9yYWdlID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8QXJyYXlTdG9yYWdlKj4o
c3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2VTdG9yYWdlKSArIG1faW5kZXhCaWFzICogc2l6ZW9mKFdy
aXRlQmFycmllcjxVbmtub3duPikpOwotICAgIG1fc3RvcmFnZS0+bV9hbGxvY0Jhc2UgPSBiYXNl
U3RvcmFnZTsKKyAgICAgICAgc3RvcmFnZSA9IG1fc3RvcmFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Rf
cHRyPEFycmF5U3RvcmFnZSo+KGJhc2VTdG9yYWdlKTsKKyAgICAgICAgbV9zdG9yYWdlLT5tX2Fs
bG9jQmFzZSA9IGJhc2VTdG9yYWdlOwogCi0gICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiB2ZWN0
b3IgPSBzdG9yYWdlLT5tX3ZlY3RvcjsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSB2ZWN0b3JMZW5n
dGg7IGkgPCBuZXdWZWN0b3JMZW5ndGg7ICsraSkKLSAgICAgICAgdmVjdG9yW2ldLmNsZWFyKCk7
CisgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogdmVjdG9yID0gc3RvcmFnZS0+bV92ZWN0
b3I7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHZlY3Rvckxlbmd0aDsgaSA8IG5ld1ZlY3Rv
ckxlbmd0aDsgKytpKQorICAgICAgICAgICAgdmVjdG9yW2ldLmNsZWFyKCk7CisKKyAgICAgICAg
bV92ZWN0b3JMZW5ndGggPSBuZXdWZWN0b3JMZW5ndGg7CisgICAgICAgIAorICAgICAgICBIZWFw
OjpoZWFwKHRoaXMpLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc3RvcmFnZVNpemUobmV3VmVjdG9y
TGVuZ3RoKSAtIHN0b3JhZ2VTaXplKHZlY3Rvckxlbmd0aCkpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICAvLyBSZW1vdmUgc29tZSwgYnV0IG5vdCBhbGwgb2YgdGhlIHByZWNh
cGFjaXR5LiBBdG9taWMgZGVjYXksICYgY2FwcGVkIHRvIG5vdCBvdmVyZmxvdyBhcnJheSBsZW5n
dGguCisgICAgdW5zaWduZWQgbmV3SW5kZXhCaWFzID0gbWluKG1faW5kZXhCaWFzID4+IDEsIE1B
WF9TVE9SQUdFX1ZFQ1RPUl9MRU5HVEggLSBuZXdWZWN0b3JMZW5ndGgpOworICAgIC8vIENhbGN1
bGF0ZSBuZXcgc3RvYXJnZSBjYXBjaXR5LCBhbGxvd2luZyByb29tIGZvciB0aGUgcHJlLWNhcGFj
aXR5LgorICAgIHVuc2lnbmVkIG5ld1N0b3JhZ2VDYXBhY2l0eSA9IG5ld1ZlY3Rvckxlbmd0aCAr
IG5ld0luZGV4QmlhczsKKyAgICB2b2lkKiBuZXdBbGxvY0Jhc2U7CisgICAgaWYgKCF0cnlGYXN0
TWFsbG9jKHN0b3JhZ2VTaXplKG5ld1N0b3JhZ2VDYXBhY2l0eSkpLmdldFZhbHVlKG5ld0FsbG9j
QmFzZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBUaGUgc3VtIG9mIG1fdmVjdG9y
TGVuZ3RoIGFuZCBtX2luZGV4QmlhcyB3aWxsIG5ldmVyIGV4Y2VlZCBNQVhfU1RPUkFHRV9WRUNU
T1JfTEVOR1RILgorICAgIEFTU0VSVChtX3ZlY3Rvckxlbmd0aCA8PSBNQVhfU1RPUkFHRV9WRUNU
T1JfTEVOR1RIICYmIChNQVhfU1RPUkFHRV9WRUNUT1JfTEVOR1RIIC0gbV92ZWN0b3JMZW5ndGgp
ID49IG1faW5kZXhCaWFzKTsKKyAgICB1bnNpZ25lZCBjdXJyZW50Q2FwYWNpdHkgPSBtX3ZlY3Rv
ckxlbmd0aCArIG1faW5kZXhCaWFzOworICAgIC8vIEN1cnJlbnRseSB0aGVyZSBpcyBubyB3YXkg
dG8gcmVwb3J0IHRvIHRoZSBoZWFwIHRoYXQgdGhlIGV4dHJhIGNhcGFjaXR5IGlzIHNocmlua2lu
ZyEKKyAgICBpZiAobmV3U3RvcmFnZUNhcGFjaXR5ID4gY3VycmVudENhcGFjaXR5KQorICAgICAg
ICBIZWFwOjpoZWFwKHRoaXMpLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3QoKG5ld1N0b3JhZ2VDYXBh
Y2l0eSAtIGN1cnJlbnRDYXBhY2l0eSkgKiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSk7
CiAKICAgICBtX3ZlY3Rvckxlbmd0aCA9IG5ld1ZlY3Rvckxlbmd0aDsKLSAgICAKLSAgICBIZWFw
OjpoZWFwKHRoaXMpLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc3RvcmFnZVNpemUobmV3VmVjdG9y
TGVuZ3RoKSAtIHN0b3JhZ2VTaXplKHZlY3Rvckxlbmd0aCkpOworICAgIG1faW5kZXhCaWFzID0g
bmV3SW5kZXhCaWFzOworICAgIG1fc3RvcmFnZSA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEFycmF5
U3RvcmFnZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V3JpdGVCYXJyaWVyPFVua25vd24+Kj4obmV3QWxs
b2NCYXNlKSArIG1faW5kZXhCaWFzKTsKKworICAgIC8vIENvcHkgdGhlIEFycmF5U3RvcmFnZSBo
ZWFkZXIgJiBjdXJyZW50IGNvbnRlbnRzIG9mIHRoZSB2ZWN0b3IsIGNsZWFyIHRoZSBuZXcgcG9z
dC1jYXBhY2l0eS4KKyAgICBtZW1tb3ZlKG1fc3RvcmFnZSwgc3RvcmFnZSwgc3RvcmFnZVNpemUo
dmVjdG9yTGVuZ3RoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gdmVjdG9yTGVuZ3RoOyBpIDwg
bV92ZWN0b3JMZW5ndGg7ICsraSkKKyAgICAgICAgbV9zdG9yYWdlLT5tX3ZlY3RvcltpXS5jbGVh
cigpOworCisgICAgLy8gRnJlZSB0aGUgb2xkIGFsbG9jYXRpb24sIHVwZGF0ZSBtX2FsbG9jQmFz
ZS4KKyAgICBmYXN0RnJlZShtX3N0b3JhZ2UtPm1fYWxsb2NCYXNlKTsKKyAgICBtX3N0b3JhZ2Ut
Pm1fYWxsb2NCYXNlID0gbmV3QWxsb2NCYXNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9Cg==
</data>
<flag name="review"
          id="121664"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="121739"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>