<?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>13386</bug_id>
          
          <creation_ts>2007-04-18 00:52:24 -0700</creation_ts>
          <short_desc>[js-collector-tweaks] Shrink Array by 4 bytes</short_desc>
          <delta_ts>2007-04-23 02:13:16 -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>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>13389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14366</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-04-18 00:52:24 -0700</bug_when>
    <thetext>Shrink ArrayInstance objects by 4 bytes. This enables further optimizations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14361</commentid>
    <comment_count>1</comment_count>
      <attachid>14067</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-04-18 00:54:09 -0700</bug_when>
    <thetext>Created attachment 14067
06-js-gc-array-shrink.patch.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14244</commentid>
    <comment_count>2</comment_count>
      <attachid>14067</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-18 11:18:23 -0700</bug_when>
    <thetext>Comment on attachment 14067
06-js-gc-array-shrink.patch.txt

+  JSValue** storage = ((JSValue **)fastCalloc(capacity + 1, sizeof(JSValue *))) + 1;

I&apos;d like to see this use static_cast rather than C-style cast, and put the * next to JSValue instead of including a space.

+    storage =  allocateStorage(newCapacity);

Two spaces after the equal sign.

+  storage = ((JSValue **)fastRealloc(storage - 1, (newCapacity + 1) * sizeof (JSValue*))) + 1;

static_cast again.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14187</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-04-18 15:02:36 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 14067 [edit])
&gt; +  JSValue** storage = ((JSValue **)fastCalloc(capacity + 1, sizeof(JSValue
&gt; *))) + 1;
&gt; 
&gt; I&apos;d like to see this use static_cast rather than C-style cast, and put the *
&gt; next to JSValue instead of including a space.
&gt; 
&gt; +    storage =  allocateStorage(newCapacity);
&gt; 
&gt; Two spaces after the equal sign.
&gt; 
&gt; +  storage = ((JSValue **)fastRealloc(storage - 1, (newCapacity + 1) * sizeof
&gt; (JSValue*))) + 1;
&gt; 
&gt; static_cast again.
&gt; 
&gt; r=me
&gt; 

Agreed on both of those.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14067</attachid>
            <date>2007-04-18 00:54:09 -0700</date>
            <delta_ts>2007-04-18 11:18:23 -0700</delta_ts>
            <desc>06-js-gc-array-shrink.patch.txt</desc>
            <filename>06-js-gc-array-shrink.patch.txt</filename>
            <type>text/plain</type>
            <size>4320</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzg1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMDc4NikKQEAgLTEsNyArMSwyNSBAQAorMjAwNy0wNC0xNyAgTWFjaWVq
IFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgIAorICAgICAgICAtIHNocmluayBBcnJheUluc3RhbmNlIG9iamVj
dHMgYnkgNCBieXRlcworICAgICAgICAKKyAgICAgICAgSSBkaWQgdGhpcyBieSBzdG9yaW5nIHRo
ZSBjYXBhY2l0eSBiZWZvcmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RvcmFnZSBhcnJheS4gSXQg
dHVybnMgb3V0CisgICAgICAgIGl0IGlzIHJhcmVseSBuZWVkZWQgYW5kIGlzIGJ5IGRlZmluaXRp
b24gMCB3aGVuIHRoZSBzdG9yYWdlIGFycmF5IGlzIG51bGwuCisgCisgICAgICAgICoga2pzL2Fy
cmF5X2luc3RhbmNlLmg6CisgICAgICAgIChLSlM6OkFycmF5SW5zdGFuY2U6OmNhcGFjaXR5KToK
KyAgICAgICAgKiBranMvYXJyYXlfb2JqZWN0LmNwcDoKKyAgICAgICAgKGFsbG9jYXRlU3RvcmFn
ZSk6CisgICAgICAgIChyZWFsbG9jYXRlU3RvcmFnZSk6CisgICAgICAgIChBcnJheUluc3RhbmNl
OjpBcnJheUluc3RhbmNlKToKKyAgICAgICAgKEFycmF5SW5zdGFuY2U6On5BcnJheUluc3RhbmNl
KToKKyAgICAgICAgKEFycmF5SW5zdGFuY2U6OnJlc2l6ZVN0b3JhZ2UpOgorCiAyMDA3LTA0LTE3
ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgLSBmaXggYnVpbGQgaXNzdWUgd2l0aCBsYXN0
IGNoYW5nZQogICAgICAgICAKICAgICAgICAgKiBranMvZnVuY3Rpb24uaDoKSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL2tqcy9hcnJheV9pbnN0YW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9hcnJheV9pbnN0YW5jZS5oCShyZXZpc2lvbiAyMDc4NSkKKysrIEphdmFTY3JpcHRD
b3JlL2tqcy9hcnJheV9pbnN0YW5jZS5oCShyZXZpc2lvbiAyMDc4NikKQEAgLTYxLDkgKzYxLDEx
IEBACiAgICAgCiAgICAgdm9pZCByZXNpemVTdG9yYWdlKHVuc2lnbmVkKTsKIAorICAgIC8vIHN0
b3JlIGNhcGFjaXR5IGluIGV4dHJhIHNwYWNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0b3Jh
Z2UgYXJyYXkgdG8gc2F2ZSBzcGFjZQorICAgIHNpemVfdCBjYXBhY2l0eSgpIHsgcmV0dXJuIHN0
b3JhZ2UgPyByZWludGVycHJldF9jYXN0PHNpemVfdD4oc3RvcmFnZVstMV0pIDogMDsgfQorCiAg
ICAgdW5zaWduZWQgbGVuZ3RoOwogICAgIHVuc2lnbmVkIHN0b3JhZ2VMZW5ndGg7Ci0gICAgdW5z
aWduZWQgY2FwYWNpdHk7CiAgICAgSlNWYWx1ZSAqKnN0b3JhZ2U7CiAgIH07CiAKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCShyZXZpc2lvbiAyMDc4NSkKKysrIEphdmFTY3Jp
cHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwCShyZXZpc2lvbiAyMDc4NikKQEAgLTQyLDEyICs0
MiwzNCBAQAogCiBjb25zdCBDbGFzc0luZm8gQXJyYXlJbnN0YW5jZTo6aW5mbyA9IHsiQXJyYXki
LCAwLCAwLCAwfTsKIAorc3RhdGljIGlubGluZSBKU1ZhbHVlKiogYWxsb2NhdGVTdG9yYWdlKHNp
emVfdCBjYXBhY2l0eSkKK3sKKyAgaWYgKGNhcGFjaXR5ID09IDApCisgICAgICByZXR1cm4gMDsK
KworICAvLyBzdG9yZSBjYXBhY2l0eSBpbiBleHRyYSBzcGFjZSBiZWZvcmUgdGhlIGJlZ2lubmlu
ZyBvZiB0aGUgc3RvcmFnZSBhcnJheSB0byBzYXZlIHNwYWNlCisgIEpTVmFsdWUqKiBzdG9yYWdl
ID0gKChKU1ZhbHVlICoqKWZhc3RDYWxsb2MoY2FwYWNpdHkgKyAxLCBzaXplb2YoSlNWYWx1ZSAq
KSkpICsgMTsKKyAgc3RvcmFnZVstMV0gPSByZWludGVycHJldF9jYXN0PEpTVmFsdWUqPihjYXBh
Y2l0eSk7CisgIHJldHVybiBzdG9yYWdlOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVhbGxv
Y2F0ZVN0b3JhZ2UoSlNWYWx1ZSoqJiBzdG9yYWdlLCBzaXplX3QgbmV3Q2FwYWNpdHkpCit7Cisg
IGlmICghc3RvcmFnZSkgeworICAgIHN0b3JhZ2UgPSAgYWxsb2NhdGVTdG9yYWdlKG5ld0NhcGFj
aXR5KTsKKyAgICByZXR1cm47CisgIH0KKworICAvLyBzdG9yZSBjYXBhY2l0eSBpbiBleHRyYSBz
cGFjZSBiZWZvcmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RvcmFnZSBhcnJheSB0byBzYXZlIHNw
YWNlCisgIHN0b3JhZ2UgPSAoKEpTVmFsdWUgKiopZmFzdFJlYWxsb2Moc3RvcmFnZSAtIDEsIChu
ZXdDYXBhY2l0eSArIDEpICogc2l6ZW9mIChKU1ZhbHVlKikpKSArIDE7CisgIHN0b3JhZ2VbLTFd
ID0gcmVpbnRlcnByZXRfY2FzdDxKU1ZhbHVlKj4obmV3Q2FwYWNpdHkpOworfQorCiBBcnJheUlu
c3RhbmNlOjpBcnJheUluc3RhbmNlKEpTT2JqZWN0ICpwcm90bywgdW5zaWduZWQgaW5pdGlhbExl
bmd0aCkKICAgOiBKU09iamVjdChwcm90bykKICAgLCBsZW5ndGgoaW5pdGlhbExlbmd0aCkKICAg
LCBzdG9yYWdlTGVuZ3RoKGluaXRpYWxMZW5ndGggPCBzcGFyc2VBcnJheUN1dG9mZiA/IGluaXRp
YWxMZW5ndGggOiAwKQotICAsIGNhcGFjaXR5KHN0b3JhZ2VMZW5ndGgpCi0gICwgc3RvcmFnZShj
YXBhY2l0eSA/IChKU1ZhbHVlICoqKWZhc3RDYWxsb2MoY2FwYWNpdHksIHNpemVvZihKU1ZhbHVl
ICopKSA6IDApCisgICwgc3RvcmFnZShhbGxvY2F0ZVN0b3JhZ2Uoc3RvcmFnZUxlbmd0aCkpCiB7
CiB9CiAKQEAgLTU1LDggKzc3LDcgQEAKICAgOiBKU09iamVjdChwcm90bykKICAgLCBsZW5ndGgo
bGlzdC5zaXplKCkpCiAgICwgc3RvcmFnZUxlbmd0aChsZW5ndGgpCi0gICwgY2FwYWNpdHkoc3Rv
cmFnZUxlbmd0aCkKLSAgLCBzdG9yYWdlKGNhcGFjaXR5ID8gKEpTVmFsdWUgKiopZmFzdE1hbGxv
YyhzaXplb2YoSlNWYWx1ZSAqKSAqIGNhcGFjaXR5KSA6IDApCisgICwgc3RvcmFnZShhbGxvY2F0
ZVN0b3JhZ2Uoc3RvcmFnZUxlbmd0aCkpCiB7CiAgIExpc3RJdGVyYXRvciBpdCA9IGxpc3QuYmVn
aW4oKTsKICAgdW5zaWduZWQgbCA9IGxlbmd0aDsKQEAgLTY3LDcgKzg4LDggQEAKIAogQXJyYXlJ
bnN0YW5jZTo6fkFycmF5SW5zdGFuY2UoKQogewotICBmYXN0RnJlZShzdG9yYWdlKTsKKyAgaWYg
KHN0b3JhZ2UpCisgICAgZmFzdEZyZWUoc3RvcmFnZSAtIDEpOwogfQogCiBKU1ZhbHVlKiBBcnJh
eUluc3RhbmNlOjpnZXRJdGVtKHVuc2lnbmVkIGkpIGNvbnN0CkBAIC0yMzEsNyArMjUzLDggQEAK
ICAgICBpZiAobmV3TGVuZ3RoIDwgc3RvcmFnZUxlbmd0aCkgewogICAgICAgbWVtc2V0KHN0b3Jh
Z2UgKyBuZXdMZW5ndGgsIDAsIHNpemVvZihKU1ZhbHVlICopICogKHN0b3JhZ2VMZW5ndGggLSBu
ZXdMZW5ndGgpKTsKICAgICB9Ci0gICAgaWYgKG5ld0xlbmd0aCA+IGNhcGFjaXR5KSB7CisgICAg
c2l6ZV90IGNhcCA9IGNhcGFjaXR5KCk7CisgICAgaWYgKG5ld0xlbmd0aCA+IGNhcCkgewogICAg
ICAgdW5zaWduZWQgbmV3Q2FwYWNpdHk7CiAgICAgICBpZiAobmV3TGVuZ3RoID4gc3BhcnNlQXJy
YXlDdXRvZmYpIHsKICAgICAgICAgbmV3Q2FwYWNpdHkgPSBuZXdMZW5ndGg7CkBAIC0yNDEsOSAr
MjY0LDkgQEAKICAgICAgICAgICBuZXdDYXBhY2l0eSA9IHNwYXJzZUFycmF5Q3V0b2ZmOwogICAg
ICAgICB9CiAgICAgICB9Ci0gICAgICBzdG9yYWdlID0gKEpTVmFsdWUgKiopZmFzdFJlYWxsb2Mo
c3RvcmFnZSwgbmV3Q2FwYWNpdHkgKiBzaXplb2YgKEpTVmFsdWUgKikpOwotICAgICAgbWVtc2V0
KHN0b3JhZ2UgKyBjYXBhY2l0eSwgMCwgc2l6ZW9mKEpTVmFsdWUgKikgKiAobmV3Q2FwYWNpdHkg
LSBjYXBhY2l0eSkpOwotICAgICAgY2FwYWNpdHkgPSBuZXdDYXBhY2l0eTsKKyAgICAgIAorICAg
ICAgcmVhbGxvY2F0ZVN0b3JhZ2Uoc3RvcmFnZSwgbmV3Q2FwYWNpdHkpOworICAgICAgbWVtc2V0
KHN0b3JhZ2UgKyBjYXAsIDAsIHNpemVvZihKU1ZhbHVlKikgKiAobmV3Q2FwYWNpdHkgLSBjYXAp
KTsKICAgICB9CiAgICAgc3RvcmFnZUxlbmd0aCA9IG5ld0xlbmd0aDsKIH0K
</data>
<flag name="review"
          id="5682"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>