<?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>133103</bug_id>
          
          <creation_ts>2014-05-19 18:34:21 -0700</creation_ts>
          <short_desc>operationOptimize() should defer the GC for a while</short_desc>
          <delta_ts>2014-05-19 19:04:45 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010385</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-19 18:34:21 -0700</bug_when>
    <thetext>Currently, operationOptimize() only defers the GC until its end.  As a result, a GC may be triggered before we return from operationOptimize(), and it may jettison the optimize codeBlock that we&apos;re planning to OSR enter into when we return from this function.  This is because the OSR entry on-ramp code hasn&apos;t been executed yet, and hence, there is not yet a reference to this new codeBlock from the stack, and there won&apos;t be until we&apos;ve had a chance to return out of operationOptimize() and run the OSR entry on-ramp code.

This issue can be fixed by using DeferGCForAWhile instead of DeferGC.  This ensures that the GC will be deferred until after the OSR entry on-ramp can be executed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010386</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-19 18:35:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/16738067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010391</commentid>
    <comment_count>2</comment_count>
      <attachid>231747</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-19 18:58:18 -0700</bug_when>
    <thetext>Created attachment 231747
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010393</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-19 19:04:45 -0700</bug_when>
    <thetext>Thanks.  Landed in r169094: &lt;http://trac.webkit.org/r169094&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231747</attachid>
            <date>2014-05-19 18:58:18 -0700</date>
            <delta_ts>2014-05-19 19:01:10 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-133103.patch</filename>
            <type>text/plain</type>
            <size>3176</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY5MDkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE0LTA1LTE5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBv
cGVyYXRpb25PcHRpbWl6ZSgpIHNob3VsZCBkZWZlciB0aGUgR0MgZm9yIGEgd2hpbGUuCisgICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzMxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCBvcGVyYXRpb25PcHRpbWl6ZSgp
IG9ubHkgZGVmZXJzIHRoZSBHQyB1bnRpbCBpdHMgZW5kLiAgQXMgYSByZXN1bHQsCisgICAgICAg
IGEgR0MgbWF5IGJlIHRyaWdnZXJlZCBqdXN0IGJlZm9yZSB3ZSByZXR1cm4gZnJvbSBvcGVyYXRp
b25PcHRpbWl6ZSgpLCBhbmQgaXQgbWF5CisgICAgICAgIGpldHRpc29uIHRoZSBvcHRpbWl6ZSBj
b2RlQmxvY2sgdGhhdCB3ZSdyZSBwbGFubmluZyB0byBPU1IgZW50ZXIgaW50byB3aGVuIHdlCisg
ICAgICAgIHJldHVybiBmcm9tIHRoaXMgZnVuY3Rpb24uICBUaGlzIGlzIGJlY2F1c2UgdGhlIE9T
UiBlbnRyeSBvbi1yYW1wIGNvZGUgaGFzbid0CisgICAgICAgIGJlZW4gZXhlY3V0ZWQgeWV0LCBh
bmQgaGVuY2UsIHRoZXJlIGlzIG5vdCB5ZXQgYSByZWZlcmVuY2UgdG8gdGhpcyBuZXcgY29kZUJs
b2NrCisgICAgICAgIGZyb20gdGhlIHN0YWNrLCBhbmQgdGhlcmUgd29uJ3QgYmUgdW50aWwgd2Un
dmUgaGFkIGEgY2hhbmNlIHRvIHJldHVybiBvdXQgb2YKKyAgICAgICAgb3BlcmF0aW9uT3B0aW1p
emUoKSB0byBydW4gdGhlIE9TUiBlbnRyeSBvbi1yYW1wIGNvZGUuCisKKyAgICAgICAgVGhpcyBp
c3N1ZSBpcyBub3cgZml4ZWQgYnkgdXNpbmcgRGVmZXJHQ0ZvckFXaGlsZSBpbnN0ZWFkIG9mIERl
ZmVyR0MuICBUaGlzCisgICAgICAgIGVuc3VyZXMgdGhhdCB0aGUgR0Mgd2lsbCBiZSBkZWZlcnJl
ZCB1bnRpbCBhZnRlciB0aGUgT1NSIGVudHJ5IG9uLXJhbXAgY2FuIGJlCisgICAgICAgIGV4ZWN1
dGVkLgorCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorCiAyMDE0LTA1LTE5ICBU
YW5heSBDICA8dGFuYXkuY0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1vdmluZyBzb21lIGNo
ZWNrLXdlYmtpdC1zdHlsZSB3YXJuaW5ncyBmcm9tIC4vZGZnCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2OTA4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMTksMjUgKzEwMTksMjEgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCi0gICAgLy8gRGVmZXIgR0Mgc28gdGhhdCBpdCBkb2Vz
bid0IHJ1biBiZXR3ZWVuIHdoZW4gd2UgZW50ZXIgaW50byB0aGlzIHNsb3cgcGF0aCBhbmQKLSAg
ICAvLyB3aGVuIHdlIGZpZ3VyZSBvdXQgdGhlIHN0YXRlIG9mIG91ciBjb2RlIGJsb2NrLiBUaGlz
IHByZXZlbnRzIGEgbnVtYmVyIG9mCi0gICAgLy8gYXdrd2FyZCByZWVudHJhbmN5IHNjZW5hcmlv
cywgaW5jbHVkaW5nOgorICAgIC8vIERlZmVyIEdDIGZvciBhIHdoaWxlIHNvIHRoYXQgaXQgZG9l
c24ndCBydW4gYmV0d2VlbiB3aGVuIHdlIGVudGVyIGludG8gdGhpcworICAgIC8vIHNsb3cgcGF0
aCBhbmQgd2hlbiB3ZSBmaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiBvdXIgY29kZSBibG9jay4gVGhp
cyBwcmV2ZW50cworICAgIC8vIGEgbnVtYmVyIG9mIGF3a3dhcmQgcmVlbnRyYW5jeSBzY2VuYXJp
b3MsIGluY2x1ZGluZzoKICAgICAvLwogICAgIC8vIC0gVGhlIG9wdGltaXplZCB2ZXJzaW9uIG9m
IG91ciBjb2RlIGJsb2NrIGJlaW5nIGpldHRpc29uZWQgYnkgR0MgcmlnaHQgYWZ0ZXIKLSAgICAv
LyAgIHdlIGNvbmNsdWRlZCB0aGF0IHdlIHdhbnRlZCB0byB1c2UgaXQuCisgICAgLy8gICB3ZSBj
b25jbHVkZWQgdGhhdCB3ZSB3YW50ZWQgdG8gdXNlIGl0LCBidXQgaGF2ZSBub3QgcGxhbnRlZCBp
dCBpbnRvIHRoZSBKUworICAgIC8vICAgc3RhY2sgeWV0LgogICAgIC8vCiAgICAgLy8gLSBBbiBv
cHRpbWl6ZWQgdmVyc2lvbiBvZiBvdXIgY29kZSBibG9jayBiZWluZyBpbnN0YWxsZWQganVzdCBh
cyB3ZSBkZWNpZGVkCiAgICAgLy8gICB0aGF0IGl0IHdhc24ndCByZWFkeSB5ZXQuCiAgICAgLy8K
LSAgICAvLyBUaGlzIHN0aWxsIGxlYXZlcyB0aGUgZm9sbG93aW5nOiBhbnl0aW1lIHdlIHJldHVy
biBmcm9tIGN0aV9vcHRpbWl6ZSwgd2UgbWF5Ci0gICAgLy8gR0MsIGFuZCB0aGUgR0MgbWF5IGVp
dGhlciBqZXR0aXNvbiB0aGUgb3B0aW1pemVkIHZlcnNpb24gb2Ygb3VyIGNvZGUgYmxvY2ssCi0g
ICAgLy8gb3IgaXQgbWF5IGluc3RhbGwgdGhlIG9wdGltaXplZCB2ZXJzaW9uIG9mIG91ciBjb2Rl
IGJsb2NrIGV2ZW4gdGhvdWdoIHdlCi0gICAgLy8gY29uY2x1ZGVkIHRoYXQgaXQgd2Fzbid0IHJl
YWR5IHlldC4KLSAgICAvLwogICAgIC8vIE5vdGUgdGhhdCBqZXR0aXNvbmluZyB3b24ndCBoYXBw
ZW4gaWYgd2UgYWxyZWFkeSBpbml0aWF0ZWQgT1NSLCBiZWNhdXNlIGluCiAgICAgLy8gdGhhdCBj
YXNlIHdlIHdvdWxkIGhhdmUgYWxyZWFkeSBwbGFudGVkIHRoZSBvcHRpbWl6ZWQgY29kZSBibG9j
ayBpbnRvIHRoZSBKUwogICAgIC8vIHN0YWNrLgotICAgIERlZmVyR0MgZGVmZXJHQyh2bS5oZWFw
KTsKKyAgICBEZWZlckdDRm9yQVdoaWxlIGRlZmVyR0Modm0uaGVhcCk7CiAgICAgCiAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKIAo=
</data>
<flag name="review"
          id="256206"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>