<?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>135217</bug_id>
          
          <creation_ts>2014-07-23 15:24:28 -0700</creation_ts>
          <short_desc>Allocate the whole RegExpMatchesArray backing store up front.</short_desc>
          <delta_ts>2014-08-14 20:22:19 -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>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>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1024359</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-07-23 15:24:28 -0700</bug_when>
    <thetext>Have patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024360</commentid>
    <comment_count>1</comment_count>
      <attachid>235385</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-07-23 15:25:01 -0700</bug_when>
    <thetext>Created attachment 235385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024863</commentid>
    <comment_count>2</comment_count>
      <attachid>235385</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-07-25 11:22:58 -0700</bug_when>
    <thetext>Comment on attachment 235385
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/RegExpMatchesArray.cpp:55
&gt; +static inline Butterfly* createRegExpMatchesArrayButterfly(VM&amp; vm, JSCell* intendedOwner, unsigned initialLength)
&gt; +{
&gt; +    Butterfly* butterfly = Butterfly::create(
&gt; +        vm, intendedOwner, 0, 0, true, indexingHeaderForArray(initialLength, initialLength),
&gt; +        ArrayStorage::sizeFor(initialLength));
&gt; +    ArrayStorage* storage = butterfly-&gt;arrayStorage();
&gt; +    storage-&gt;m_indexBias = 0;
&gt; +    storage-&gt;m_sparseMap.clear();
&gt; +    storage-&gt;m_numValuesInVector = 0;
&gt; +    return butterfly;
&gt; +}

Maybe this function should go in JSArray.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029296</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-08-14 20:22:19 -0700</bug_when>
    <thetext>Committed r172618: &lt;http://trac.webkit.org/changeset/172618&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235385</attachid>
            <date>2014-07-23 15:25:01 -0700</date>
            <delta_ts>2014-07-25 11:22:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135217.diff</filename>
            <type>text/plain</type>
            <size>2478</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZiNzEyNjAuLjFhMzJhZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA3LTIzICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvY2F0ZSB0aGUgd2hvbGUgUmVnRXhw
TWF0Y2hlc0FycmF5IGJhY2tpbmcgc3RvcmUgdXAgZnJvbnQuCisgICAgICAgIDxodHRwczovL3dl
YmtpdC5vcmcvYi8xMzUyMTc+CisKKyAgICAgICAgV2Ugd2VyZSB1c2luZyB0aGUgZ2VuZXJpYyBh
cnJheSBiYWNraW5nIHN0b3JlIGFsbG9jYXRpb24gcGF0aCBmb3IKKyAgICAgICAgUmVnRXhwTWF0
Y2hlc0FycmF5IHdoaWNoIG1lYW50IHN0YXJ0aW5nIHdpdGggNCBzbG90cyBhbmQgdGhlbiBncm93
aW5nCisgICAgICAgIGl0IGR5bmFtaWNhbGx5IGFzIHdlIGFwcGVuZC4gU2luY2Ugd2UgYWx3YXlz
IGtub3cgdGhlIGZpbmFsIG51bWJlciBvZgorICAgICAgICBlbnRyaWVzIHVwIGZyb250LCBhbGxv
Y2F0ZSBhIHBlcmZlY3RseS1zaXplZCBiYWNraW5nIHN0b3JlIHJpZ2h0IGF3YXkuCisKKyAgICAg
ICAgfjIlIHByb2dyZXNzaW9uIG9uIE9jdGFuZS9yZWdleHAuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZVJlZ0V4cE1hdGNoZXNBcnJheUJ1dHRlcmZseSk6
CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6Y3JlYXRlKToKKwogMjAxNC0wNy0y
MyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBm
aXggYWZ0ZXIgcjE3MTQ4Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBNYXRjaGVzQXJyYXkuY3BwCmluZGV4IGRlMzRlNWMuLmJhODQxMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmNw
cApAQCAtNDIsMTEgKzQyLDIzIEBAIFJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0Fy
cmF5KFZNJiB2bSwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEpTR2xvYmFsT2JqCiAgICAgbV9yZWdF
eHAuc2V0KHZtLCB0aGlzLCByZWdFeHApOwogfQogCitzdGF0aWMgaW5saW5lIEJ1dHRlcmZseSog
Y3JlYXRlUmVnRXhwTWF0Y2hlc0FycmF5QnV0dGVyZmx5KFZNJiB2bSwgSlNDZWxsKiBpbnRlbmRl
ZE93bmVyLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoKQoreworICAgIEJ1dHRlcmZseSogYnV0dGVy
Zmx5ID0gQnV0dGVyZmx5OjpjcmVhdGUoCisgICAgICAgIHZtLCBpbnRlbmRlZE93bmVyLCAwLCAw
LCB0cnVlLCBpbmRleGluZ0hlYWRlckZvckFycmF5KGluaXRpYWxMZW5ndGgsIGluaXRpYWxMZW5n
dGgpLAorICAgICAgICBBcnJheVN0b3JhZ2U6OnNpemVGb3IoaW5pdGlhbExlbmd0aCkpOworICAg
IEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IGJ1dHRlcmZseS0+YXJyYXlTdG9yYWdlKCk7CisgICAg
c3RvcmFnZS0+bV9pbmRleEJpYXMgPSAwOworICAgIHN0b3JhZ2UtPm1fc3BhcnNlTWFwLmNsZWFy
KCk7CisgICAgc3RvcmFnZS0+bV9udW1WYWx1ZXNJblZlY3RvciA9IDA7CisgICAgcmV0dXJuIGJ1
dHRlcmZseTsKK30KKwogUmVnRXhwTWF0Y2hlc0FycmF5KiBSZWdFeHBNYXRjaGVzQXJyYXk6OmNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTU3RyaW5nKiBpbnB1dCwgUmVnRXhwKiByZWdFeHAsIE1h
dGNoUmVzdWx0IHJlc3VsdCkKIHsKICAgICBBU1NFUlQocmVzdWx0KTsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwotICAgIEJ1dHRlcmZseSogYnV0dGVyZmx5ID0gY3JlYXRlQXJyYXlCdXR0ZXJm
bHkodm0sIDAsIHJlZ0V4cC0+bnVtU3VicGF0dGVybnMoKSArIDEpOworICAgIEJ1dHRlcmZseSog
YnV0dGVyZmx5ID0gY3JlYXRlUmVnRXhwTWF0Y2hlc0FycmF5QnV0dGVyZmx5KHZtLCAwLCByZWdF
eHAtPm51bVN1YnBhdHRlcm5zKCkgKyAxKTsKICAgICBSZWdFeHBNYXRjaGVzQXJyYXkqIGFycmF5
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8UmVnRXhwTWF0Y2hlc0FycmF5Pih2bS5oZWFw
KSkgUmVnRXhwTWF0Y2hlc0FycmF5KHZtLCBidXR0ZXJmbHksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSwgaW5wdXQsIHJlZ0V4cCwgcmVzdWx0KTsKICAgICBhcnJheS0+ZmluaXNoQ3JlYXRp
b24odm0pOwogICAgIHJldHVybiBhcnJheTsK
</data>
<flag name="review"
          id="259960"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>