<?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>190317</bug_id>
          
          <creation_ts>2018-10-05 11:14:51 -0700</creation_ts>
          <short_desc>performJITMemcpy() should handle the case when the executable allocator is not initialized yet.</short_desc>
          <delta_ts>2018-10-05 12:15:24 -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>WebKit 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>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466725</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-10-05 11:14:51 -0700</bug_when>
    <thetext>When SeparatedWXHeaps is in use, jitWriteThunkGenerator() will call performJITMemcpy() to copy memory before the JIT fixed memory pool is initialize.  Before r236864, performJITMemcpy() would just do a memcpy in that case.  We need to restore the equivalent behavior.

&lt;rdar://problem/45039398&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466726</commentid>
    <comment_count>1</comment_count>
      <attachid>351683</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-10-05 11:18:38 -0700</bug_when>
    <thetext>Created attachment 351683
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466728</commentid>
    <comment_count>2</comment_count>
      <attachid>351683</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-10-05 11:21:56 -0700</bug_when>
    <thetext>Comment on attachment 351683
proposed patch.

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

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        to copy memory before the JIT fixed memory pool is initialize.  Before r236864,

s/initialize/initialized

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        performJITMemcpy() would just do a memcpy in that case.  We need to restore the

Why not just make it call memcpy? This feels like a roundabout way to solve that issue IMO</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466730</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-10-05 11:24:52 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #2)
&gt; Comment on attachment 351683 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=351683&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:10
&gt; &gt; +        to copy memory before the JIT fixed memory pool is initialize.  Before r236864,
&gt; 
&gt; s/initialize/initialized

will fix.

&gt; &gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt; +        performJITMemcpy() would just do a memcpy in that case.  We need to restore the
&gt; 
&gt; Why not just make it call memcpy? This feels like a roundabout way to solve
&gt; that issue IMO

Because jitWriteThunkGenerator() does not call performJITMemcpy() directly.  The call comes indirectly far below LinkBuffer::linkCode().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466736</commentid>
    <comment_count>4</comment_count>
      <attachid>351683</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-10-05 11:28:47 -0700</bug_when>
    <thetext>Comment on attachment 351683
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466742</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-10-05 11:34:24 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r236880: &lt;http://trac.webkit.org/r236880&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466748</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-10-05 12:15:24 -0700</bug_when>
    <thetext>+ build fix landed in r236881: &lt;http://trac.webkit.org/r236881&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351683</attachid>
            <date>2018-10-05 11:18:38 -0700</date>
            <delta_ts>2018-10-05 11:28:47 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-190317.patch</filename>
            <type>text/plain</type>
            <size>3209</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM2ODc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE4LTEwLTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBw
ZXJmb3JtSklUTWVtY3B5KCkgc2hvdWxkIGhhbmRsZSB0aGUgY2FzZSB3aGVuIHRoZSBleGVjdXRh
YmxlIGFsbG9jYXRvciBpcyBub3QgaW5pdGlhbGl6ZWQgeWV0LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMzE3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NTAzOTM5OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIFNlcGFyYXRlZFdYSGVhcHMgaXMgaW4gdXNlLCBqaXRXcml0ZVRodW5rR2Vu
ZXJhdG9yKCkgd2lsbCBjYWxsIHBlcmZvcm1KSVRNZW1jcHkoKQorICAgICAgICB0byBjb3B5IG1l
bW9yeSBiZWZvcmUgdGhlIEpJVCBmaXhlZCBtZW1vcnkgcG9vbCBpcyBpbml0aWFsaXplLiAgQmVm
b3JlIHIyMzY4NjQsCisgICAgICAgIHBlcmZvcm1KSVRNZW1jcHkoKSB3b3VsZCBqdXN0IGRvIGEg
bWVtY3B5IGluIHRoYXQgY2FzZS4gIFdlIG5lZWQgdG8gcmVzdG9yZSB0aGUKKyAgICAgICAgZXF1
aXZhbGVudCBiZWhhdmlvci4KKworICAgICAgICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6aXNKSVRQQyk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3IuaDoKKyAgICAgICAgKEpTQzo6cGVyZm9ybUpJVE1lbWNweSk6CisKIDIwMTgtMTAtMDUg
IENhcmxvcyBFZHVhcmRvIFJhbWFsaG8gIDxjYWR1YmVudHplbkBnbWFpbC5jb20+CiAKICAgICAg
ICAgW1dQRV1bSlNDXSBVc2UgVW5pZmllZCBTb3VyY2VzIGZvciBQbGF0Zm9ybS1zcGVjaWZpYyBz
b3VyY2VzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDIzNjg3OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMSw3ICsz
MzEsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBhc3luY0Rpc2Fzc2VtYmx5IG9wdGlvbiBhcyBv
dXIgY2FsbGVyIHdpbGwgc2V0IG91ciBwYWdlcyBleGVjdXRlIG9ubHkuCiAgICAgICAgIHJldHVy
biBsaW5rQnVmZmVyLmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseTxKSVRUaHVua1B0clRh
Zz4oKTsKICAgICB9Ci0jZWxzZSAvLyBDUFUoQVJNNjQpICYmIFVTRShFWEVDVVRFX09OTFlfSklU
X1dSSVRFX0ZVTkNUSU9OKQorI2Vsc2UgLy8gbm90IENQVShBUk02NCkgJiYgVVNFKEVYRUNVVEVf
T05MWV9KSVRfV1JJVEVfRlVOQ1RJT04pCiAgICAgc3RhdGljIHZvaWQgZ2VuZXJpY1dyaXRlVG9K
SVRSZWdpb24ob2ZmX3Qgb2Zmc2V0LCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUp
CiAgICAgewogICAgICAgICBtZW1jcHkoKHZvaWQqKShzdGFydE9mRml4ZWRXcml0YWJsZU1lbW9y
eVBvb2wgKyBvZmZzZXQpLCBkYXRhLCBkYXRhU2l6ZSk7CkBAIC0zNTAsNyArMzUwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgYXV0byBjb2RlUHRyID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRo
dW5rUHRyVGFnPih0YWdDRnVuY3Rpb25QdHI8SklUVGh1bmtQdHJUYWc+KGZ1bmN0aW9uKSk7CiAg
ICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+OjpjcmVh
dGVTZWxmTWFuYWdlZENvZGVSZWYoY29kZVB0cik7CiAgICAgfQotI2VuZGlmCisjZW5kaWYgLy8g
Q1BVKEFSTTY0KSAmJiBVU0UoRVhFQ1VURV9PTkxZX0pJVF9XUklURV9GVU5DVElPTikKIAogI2Vs
c2UgLy8gT1MoREFSV0lOKSAmJiBIQVZFKFJFTUFQX0pJVCkKICAgICB2b2lkIGluaXRpYWxpemVT
ZXBhcmF0ZWRXWEhlYXBzKHZvaWQqLCBzaXplX3QsIHZvaWQqLCBzaXplX3QpCkBAIC01MDksNyAr
NTA5LDcgQEAgdm9pZCogZW5kT2ZGaXhlZEV4ZWN1dGFibGVNZW1vcnlQb29sSW1wbAogCiBib29s
IGlzSklUUEModm9pZCogcGMpCiB7Ci0gICAgcmV0dXJuIGFsbG9jYXRvci0+aXNKSVRQQyhwYyk7
CisgICAgcmV0dXJuIGFsbG9jYXRvciAmJiBhbGxvY2F0b3ItPmlzSklUUEMocGMpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCShyZXZpc2lvbiAyMzY4NzgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtOTMs
NyArOTMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQqIHBlcmZvcm1KSVRNZW1jcHkodm9pCiAgICAg
UkVMRUFTRV9BU1NFUlQocm91bmRVcFRvTXVsdGlwbGVPZjxpbnN0cnVjdGlvblNpemU+KGRzdCkg
PT0gZHN0KTsKICAgICBSRUxFQVNFX0FTU0VSVChyb3VuZFVwVG9NdWx0aXBsZU9mPGluc3RydWN0
aW9uU2l6ZT4oc3JjKSA9PSBzcmMpOwogI2VuZGlmCi0gICAgaWYgKGRzdCA+PSBzdGFydE9mRml4
ZWRFeGVjdXRhYmxlTWVtb3J5UG9vbCgpICYmIGRzdCA8IGVuZE9mRml4ZWRFeGVjdXRhYmxlTWVt
b3J5UG9vbCgpKSB7CisgICAgaWYgKGlzSklUUEMoZHN0KSkgewogICAgICAgICBSRUxFQVNFX0FT
U0VSVChyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkc3QpICsgbiA8PSBlbmRPZkZpeGVkRXhl
Y3V0YWJsZU1lbW9yeVBvb2woKSk7CiAjaWYgRU5BQkxFKEZBU1RfSklUX1BFUk1JU1NJT05TKQog
I2lmICFDUFUoQVJNNjRFKQo=
</data>
<flag name="review"
          id="369036"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>