<?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>22897</bug_id>
          
          <creation_ts>2008-12-16 23:09:05 -0800</creation_ts>
          <short_desc>Clear bytecode vector after JITing</short_desc>
          <delta_ts>2008-12-17 13:31:45 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>102754</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-12-16 23:09:05 -0800</bug_when>
    <thetext>Clearing the bytecode vector after JITing will save about 4.8MB on Membuster head.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102755</commentid>
    <comment_count>1</comment_count>
      <attachid>26087</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-12-16 23:10:02 -0800</bug_when>
    <thetext>Created attachment 26087
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102785</commentid>
    <comment_count>2</comment_count>
      <attachid>26087</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-12-17 10:00:21 -0800</bug_when>
    <thetext>Comment on attachment 26087
patch

&gt; +        (JSC::CodeBlock::handlerForBytecodeOffset): Don&apos;t assert that the offset
&gt; +        is less than the size of the bytecode vector since it may have been cleared
&gt; +        and therefore 0.

I think it would be better to keep around the size of the bytecode vector in a separate variable in debug versions so we could keep these assertions.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102794</commentid>
    <comment_count>3</comment_count>
      <attachid>26087</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-17 11:41:20 -0800</bug_when>
    <thetext>Comment on attachment 26087
patch

&gt;      m_codeBlock-&gt;setJITCode(codeRef);
&gt; +#if !ENABLE(OPCODE_SAMPLING)
&gt; +    m_codeBlock-&gt;instructions().clear();
&gt; +#endif

I think it would be better to do this:

#if ENABLE(OPCODE_SAMPLING)
    // Don&apos;t clear instructions -- we need them for sampling.
#elsif !defined(NDEBUG)
    if (!s_dumpsGeneratedCode)
        m_codeBlock-&gt;instructions().clear();
#else
    m_codeBlock-&gt;instructions().clear();
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102795</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-17 11:41:56 -0800</bug_when>
    <thetext>&gt; I think it would be better to do this:

That way, you can still dump code in debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102805</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-12-17 13:31:45 -0800</bug_when>
    <thetext>Fixed in r39366.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26087</attachid>
            <date>2008-12-16 23:10:02 -0800</date>
            <delta_ts>2008-12-17 10:00:21 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>4045</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM5MzU0
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDgtMTIt
MTYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjg5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQyODM0Mj4K
KyAgICAgICAgTG9vayBpbnRvIGZlYXNpYmlsaXR5IG9mIGRpc2NhcmRpbmcgYnl0ZWNvZGUgYWZ0
ZXIgbmF0aXZlIGNvZGVnZW4KKworICAgICAgICBDbGVhciB0aGUgYnl0ZWNvZGUgSW5zdHJ1Y3Rp
b24gdmVjdG9yIGF0IHRoZSBlbmQgSklUIGdlbmVyYXRpb24uCisKKyAgICAgICAgU2F2ZXMgNC44
IE1CIG9uIE1lbWJ1c3RlciBoZWFkLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wKTogQWRkIGxvZ2dpbmcgZm9yIHRoZSBj
YXNlIHRoYXQgc29tZW9uZSB0cmllcworICAgICAgICB0byBkdW1wIHRoZSBpbnN0cnVjdGlvbnMg
b2YgYSBDb2RlQmxvY2sgdGhhdCBoYXMgaGFkIGl0cyBieXRlY29kZQorICAgICAgICB2ZWN0b3Ig
Y2xlYXJlZC4KKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpoYW5kbGVyRm9yQnl0ZWNvZGVPZmZz
ZXQpOiBEb24ndCBhc3NlcnQgdGhhdCB0aGUgb2Zmc2V0CisgICAgICAgIGlzIGxlc3MgdGhhbiB0
aGUgc2l6ZSBvZiB0aGUgYnl0ZWNvZGUgdmVjdG9yIHNpbmNlIGl0IG1heSBoYXZlIGJlZW4gY2xl
YXJlZAorICAgICAgICBhbmQgdGhlcmVmb3JlIDAuCisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
bGluZU51bWJlckZvckJ5dGVjb2RlT2Zmc2V0KTogRGl0dG8uCisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQpOiBEaXR0by4KKyAgICAgICAg
KEpTQzo6Q29kZUJsb2NrOjpnZXRCeUlkRXhjZXB0aW9uSW5mb0ZvckJ5dGVjb2RlT2Zmc2V0KTog
RGl0dG8uCisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZnVuY3Rpb25SZWdpc3RlckZvckJ5dGVj
b2RlT2Zmc2V0KTogRGl0dG8uCisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOiBDbGVhciB0aGUgYnl0ZWNvZGUgdmVjdG9yIHVubGVzcyB3
ZQorICAgICAgICBoYXZlIGNvbXBpbGVkIHdpdGggT3Bjb2RlIHNhbXBsaW5nIHdoZXJlIHdlIHdp
bGwgY29udGludWUgdG8gcmVxdWlyZSBpdC4KKwogMjAwOC0xMi0xNiAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRl
eDogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBieXRlY29kZS9Db2RlQmxv
Y2suY3BwCShyZXZpc2lvbiAzOTM1NCkKKysrIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMyMiw2ICszMjIsMTEgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50U3RydWN0
dXJlcyhjb25zdCBJbgogCiB2b2lkIENvZGVCbG9jazo6ZHVtcChFeGVjU3RhdGUqIGV4ZWMpIGNv
bnN0CiB7CisgICAgaWYgKG1faW5zdHJ1Y3Rpb25zLmlzRW1wdHkoKSkgeworICAgICAgICBwcmlu
dGYoIk5vIGluc3RydWN0aW9ucyBhdmFpbGFibGUuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIHNpemVfdCBpbnN0cnVjdGlvbkNvdW50ID0gMDsKIAogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9pbnN0cnVjdGlvbnMuc2l6ZSgpOyBpICs9IG9wY29kZUxlbmd0aHNbZXhl
Yy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQobV9pbnN0cnVjdGlvbnNbaV0udS5vcGNvZGUp
XSkKQEAgLTEzMzEsOCArMTMzNiw2IEBAIEhhbmRsZXJJbmZvKiBDb2RlQmxvY2s6OmhhbmRsZXJG
b3JCeXRlY28KIHsKICAgICBpZiAoIW1fcmFyZURhdGEpCiAgICAgICAgIHJldHVybiAwOwotCi0g
ICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0IDwgbV9pbnN0cnVjdGlvbnMuc2l6ZSgpKTsKICAgICAK
ICAgICBWZWN0b3I8SGFuZGxlckluZm8+JiBleGNlcHRpb25IYW5kbGVycyA9IG1fcmFyZURhdGEt
Pm1fZXhjZXB0aW9uSGFuZGxlcnM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleGNlcHRp
b25IYW5kbGVycy5zaXplKCk7ICsraSkgewpAQCAtMTM0Nyw4ICsxMzUwLDYgQEAgSGFuZGxlcklu
Zm8qIENvZGVCbG9jazo6aGFuZGxlckZvckJ5dGVjbwogCiBpbnQgQ29kZUJsb2NrOjpsaW5lTnVt
YmVyRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQpCiB7Ci0gICAgQVNT
RVJUKGJ5dGVjb2RlT2Zmc2V0IDwgbV9pbnN0cnVjdGlvbnMuc2l6ZSgpKTsKLQogICAgIGlmICgh
bV9saW5lSW5mby5zaXplKCkpCiAgICAgICAgIHJldHVybiBtX293bmVyTm9kZS0+c291cmNlKCku
Zmlyc3RMaW5lKCk7IC8vIEVtcHR5IGZ1bmN0aW9uCiAKQEAgLTEzNjksOCArMTM3MCw2IEBAIGlu
dCBDb2RlQmxvY2s6OmxpbmVOdW1iZXJGb3JCeXRlY29kZU9mZnMKIAogaW50IENvZGVCbG9jazo6
ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQs
IGludCYgZGl2b3QsIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0KQogewotICAgIEFT
U0VSVChieXRlY29kZU9mZnNldCA8IG1faW5zdHJ1Y3Rpb25zLnNpemUoKSk7Ci0KICAgICBpZiAo
IW1fZXhwcmVzc2lvbkluZm8uc2l6ZSgpKSB7CiAgICAgICAgIC8vIFdlIGRpZG4ndCB0aGluayBh
bnl0aGluZyBjb3VsZCB0aHJvdy4gIEFwcGFyZW50bHkgd2Ugd2VyZSB3cm9uZy4KICAgICAgICAg
c3RhcnRPZmZzZXQgPSAwOwpAQCAtMTQwNSw4ICsxNDA0LDYgQEAgaW50IENvZGVCbG9jazo6ZXhw
cmVzc2lvblJhbmdlRm9yQnl0ZWNvZAogCiBib29sIENvZGVCbG9jazo6Z2V0QnlJZEV4Y2VwdGlv
bkluZm9Gb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgT3Bjb2RlSUQm
IG9wY29kZUlEKQogewotICAgIEFTU0VSVChieXRlY29kZU9mZnNldCA8IG1faW5zdHJ1Y3Rpb25z
LnNpemUoKSk7Ci0KICAgICBpZiAoIW1fZ2V0QnlJZEV4Y2VwdGlvbkluZm8uc2l6ZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE0MzAsOCArMTQyNyw2IEBAIGJvb2wgQ29kZUJsb2Nr
OjpnZXRCeUlkRXhjZXB0aW9uSW5mb0ZvckIKICNpZiBFTkFCTEUoSklUKQogYm9vbCBDb2RlQmxv
Y2s6OmZ1bmN0aW9uUmVnaXN0ZXJGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBieXRlY29kZU9m
ZnNldCwgaW50JiBmdW5jdGlvblJlZ2lzdGVySW5kZXgpCiB7Ci0gICAgQVNTRVJUKGJ5dGVjb2Rl
T2Zmc2V0IDwgbV9pbnN0cnVjdGlvbnMuc2l6ZSgpKTsKLQogICAgIGlmICghbV9yYXJlRGF0YSB8
fCAhbV9yYXJlRGF0YS0+bV9mdW5jdGlvblJlZ2lzdGVySW5mb3Muc2l6ZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKSW5kZXg6IGppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGppdC9KSVQu
Y3BwCShyZXZpc2lvbiAzOTM1MCkKKysrIGppdC9KSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODYxLDYgKzE4NjEsOSBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGUoKQogICAgIH0KIAogICAg
IG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlKGNvZGVSZWYpOworI2lmICFFTkFCTEUoT1BDT0RFX1NB
TVBMSU5HKQorICAgIG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5jbGVhcigpOworI2VuZGlm
CiB9CiAKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG9saW5lcygpCg==
</data>
<flag name="review"
          id="12298"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>