<?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>212765</bug_id>
          
          <creation_ts>2020-06-04 11:15:32 -0700</creation_ts>
          <short_desc>Add a Thread Specific Cache for LinkBuffer::CompactAndLinkCode()</short_desc>
          <delta_ts>2020-06-05 09:27:38 -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>Other</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>
          
          <blocked>212825</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</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>1659198</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-06-04 11:15:32 -0700</bug_when>
    <thetext>Similar to https://bugs.webkit.org/show_bug.cgi?id=212562, we should add a Thread Local Buffer for LinkBuffer::copyCompactAndLinkCode().  When compacting JIT code, for most CPU types we need a second data buffer.  We should make this buffer a thread local just like we did for the AssemblerBuffer in 212562.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659199</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-06-04 11:17:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/63986742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659201</commentid>
    <comment_count>2</comment_count>
      <attachid>401051</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-06-04 11:23:00 -0700</bug_when>
    <thetext>Created attachment 401051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659242</commentid>
    <comment_count>3</comment_count>
      <attachid>401051</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-04 12:15:51 -0700</bug_when>
    <thetext>Comment on attachment 401051
Patch

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

r=me

&gt; Source/JavaScriptCore/assembler/LinkBuffer.cpp:125
&gt; +typedef ThreadSpecific&lt;BranchCompactionLinkBuffer, WTF::CanBeGCThread::True&gt; ThreadSpecificBranchCompactionLinkBuffer;

nit: &quot;using&quot; instead of &quot;typedef&quot;

&gt; Source/JavaScriptCore/assembler/LinkBuffer.cpp:201
&gt; +    uint8_t* m_data;
&gt; +    size_t m_size;

nit: you can give these fields default values so you don&apos;t have to initialize them in 2 different ctors

&gt; Source/JavaScriptCore/assembler/LinkBuffer.cpp:232
&gt; +    BranchCompactionLinkBuffer outBuffer(m_size);

can we do the FAST_JIT_PERMISSIONS&amp;&amp;arm64e path above in a runtime supported way for other devices too? Seems purely better than this, since it doesn&apos;t require a side buffer.

There are a few arm64 devices that at runtime support APRR

Maybe as a follow-up in a separate patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659276</commentid>
    <comment_count>4</comment_count>
      <attachid>401067</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-06-04 13:09:07 -0700</bug_when>
    <thetext>Created attachment 401067
Patch for landing

&gt; &gt; Source/JavaScriptCore/assembler/LinkBuffer.cpp:125
&gt; &gt; +typedef ThreadSpecific&lt;BranchCompactionLinkBuffer, WTF::CanBeGCThread::True&gt; ThreadSpecificBranchCompactionLinkBuffer;
&gt; 
&gt; nit: &quot;using&quot; instead of &quot;typedef&quot;

Done.

&gt; &gt; Source/JavaScriptCore/assembler/LinkBuffer.cpp:201
&gt; &gt; +    uint8_t* m_data;
&gt; &gt; +    size_t m_size;
&gt; 
&gt; nit: you can give these fields default values so you don&apos;t have to
&gt; initialize them in 2 different ctors

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659451</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-06-04 19:41:01 -0700</bug_when>
    <thetext>Committed r262591: &lt;https://trac.webkit.org/changeset/262591&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401051</attachid>
            <date>2020-06-04 11:23:00 -0700</date>
            <delta_ts>2020-06-04 12:15:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>212765.patch</filename>
            <type>text/plain</type>
            <size>4385</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNTQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDIwLTA2LTA0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhIFRocmVhZCBTcGVjaWZpYyBCdWZmZXIgZm9yIExpbmtCdWZmZXIgd2hlbiBDb21w
YWN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI3NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhIHRocmVhZCBsb2NhbCBidWZmZXIgZm9yIENQVSB0eXBlcyB0aGF0IHVzZSBhIHNlY29u
ZCBidWZmZXIgd2hlbiBjb21wYWN0aW5nLgorICAgICAgICBUaGlzIGlzIHZlcnkgc2ltaWxhcnkg
dG8gdGhlIHdvcmsgZG9uZSBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEyNTYyLgorCisgICAgICAgICogYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwOgorICAgICAg
ICAoSlNDOjp0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyKToKKyAgICAg
ICAgKEpTQzo6QnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXI6OkJyYW5jaENvbXBhY3Rpb25MaW5r
QnVmZmVyKToKKyAgICAgICAgKEpTQzo6QnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXI6On5CcmFu
Y2hDb21wYWN0aW9uTGlua0J1ZmZlcik6CisgICAgICAgIChKU0M6OkJyYW5jaENvbXBhY3Rpb25M
aW5rQnVmZmVyOjpkYXRhKToKKyAgICAgICAgKEpTQzo6QnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZm
ZXI6OnRha2VCdWZmZXJJZkxhcmdlcik6CisgICAgICAgIChKU0M6OkJyYW5jaENvbXBhY3Rpb25M
aW5rQnVmZmVyOjpzaXplKToKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6Y29weUNvbXBhY3RB
bmRMaW5rQ29kZSk6CisKIDIwMjAtMDYtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgV29yayBhcm91bmQgYnJva2VuIHN5c3RlbSB2ZXJzaW9uIG1h
Y3JvCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5jcHAJKHJldmlzaW9uIDI2MjQ1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTGlua0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksODkgQEAgTGlu
a0J1ZmZlcjo6Q29kZVJlZjxMaW5rQnVmZmVyUHRyVGFnPiBMaQogfQogCiAjaWYgRU5BQkxFKEJS
QU5DSF9DT01QQUNUSU9OKQorI2lmICFDUFUoQVJNNjRFKSB8fCAhRU5BQkxFKEZBU1RfSklUX1BF
Uk1JU1NJT05TKQorY2xhc3MgQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXI7CisKK3R5cGVkZWYg
VGhyZWFkU3BlY2lmaWM8QnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIsIFdURjo6Q2FuQmVHQ1Ro
cmVhZDo6VHJ1ZT4gVGhyZWFkU3BlY2lmaWNCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlcjsKKwor
c3RhdGljIFRocmVhZFNwZWNpZmljQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIqIHRocmVhZFNw
ZWNpZmljQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXJQdHI7CisKK3N0YXRpYyBUaHJlYWRTcGVj
aWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyJiB0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBh
Y3Rpb25MaW5rQnVmZmVyKCkKK3sKK3N0YXRpYyBzdGQ6Om9uY2VfZmxhZyBmbGFnOworICAgIHN0
ZDo6Y2FsbF9vbmNlKAorICAgICAgICBmbGFnLAorICAgICAgICBbXSAoKSB7CisgICAgICAgICAg
ICB0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyUHRyID0gbmV3IFRocmVh
ZFNwZWNpZmljQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIoKTsKKyAgICAgICAgfSk7CisgICAg
cmV0dXJuICp0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyUHRyOworfQor
CitERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihCcmFuY2hDb21wYWN0aW9u
TGlua0J1ZmZlcik7CisKK2NsYXNzIEJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlcik7CitwdWJsaWM6
CisgICAgQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIoKQorICAgICAgICA6IG1fZGF0YShudWxs
cHRyKQorICAgICAgICAsIG1fc2l6ZSgwKQorICAgIHsKKyAgICB9CisKKyAgICBCcmFuY2hDb21w
YWN0aW9uTGlua0J1ZmZlcihzaXplX3Qgc2l6ZSkKKyAgICAgICAgOiBtX2RhdGEobnVsbHB0cikK
KyAgICAgICAgLCBtX3NpemUoMCkKKyAgICB7CisgICAgICAgIGF1dG8mIHRocmVhZFNwZWNpZmlj
ID0gdGhyZWFkU3BlY2lmaWNCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlcigpOworCisgICAgICAg
IGlmICh0aHJlYWRTcGVjaWZpYy0+c2l6ZSgpID49IHNpemUpCisgICAgICAgICAgICB0YWtlQnVm
ZmVySWZMYXJnZXIoKnRocmVhZFNwZWNpZmljKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICBtX3NpemUgPSBzaXplOworICAgICAgICAgICAgbV9kYXRhID0gc3RhdGljX2Nhc3Q8dWludDhf
dCo+KEJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyTWFsbG9jOjptYWxsb2Moc2l6ZSkpOworICAg
ICAgICB9CisgICAgfQorCisgICAgfkJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyKCkKKyAgICB7
CisgICAgICAgIGF1dG8mIHRocmVhZFNwZWNpZmljID0gdGhyZWFkU3BlY2lmaWNCcmFuY2hDb21w
YWN0aW9uTGlua0J1ZmZlcigpOworICAgICAgICB0aHJlYWRTcGVjaWZpYy0+dGFrZUJ1ZmZlcklm
TGFyZ2VyKCp0aGlzKTsKKworICAgICAgICBpZiAobV9kYXRhKQorICAgICAgICAgICAgQnJhbmNo
Q29tcGFjdGlvbkxpbmtCdWZmZXJNYWxsb2M6OmZyZWUobV9kYXRhKTsKKyAgICB9CisKKyAgICB1
aW50OF90KiBkYXRhKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RhdGE7CisgICAgfQorCitw
cml2YXRlOgorICAgIHZvaWQgdGFrZUJ1ZmZlcklmTGFyZ2VyKEJyYW5jaENvbXBhY3Rpb25MaW5r
QnVmZmVyJiBvdGhlcikKKyAgICB7CisgICAgICAgIGlmIChzaXplKCkgPj0gb3RoZXIuc2l6ZSgp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChtX2RhdGEpCisgICAgICAgICAg
ICBCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlck1hbGxvYzo6ZnJlZShtX2RhdGEpOworCisgICAg
ICAgIG1fZGF0YSA9IG90aGVyLm1fZGF0YTsKKyAgICAgICAgbV9zaXplID0gb3RoZXIubV9zaXpl
OworCisgICAgICAgIG90aGVyLm1fZGF0YSA9IG51bGxwdHI7CisgICAgICAgIG90aGVyLm1fc2l6
ZSA9IDA7CisgICAgfQorCisgICAgc2l6ZV90IHNpemUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fc2l6ZTsKKyAgICB9CisKKyAgICB1aW50OF90KiBtX2RhdGE7CisgICAgc2l6ZV90IG1fc2l6
ZTsKK307CisjZW5kaWYKKwogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCByZWNvcmRMaW5rT2Zm
c2V0cyhBc3NlbWJsZXJEYXRhJiBhc3NlbWJsZXJEYXRhLCBpbnQzMl90IHJlZ2lvblN0YXJ0LCBp
bnQzMl90IHJlZ2lvbkVuZCwgaW50MzJfdCBvZmZzZXQpCiB7CiAgICAgaW50MzJfdCBwdHIgPSBy
ZWdpb25TdGFydCAvIHNpemVvZihpbnQzMl90KTsKQEAgLTE0Niw4ICsyMjksOCBAQCB2b2lkIExp
bmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoCiAgICAgQVJNNjRFSGFzaCB2ZXJpZnlV
bmNvbXBhY3RlZEhhc2g7CiAgICAgdWludDhfdCogb3V0RGF0YSA9IGNvZGVPdXREYXRhOwogI2Vs
c2UKLSAgICBBc3NlbWJsZXJEYXRhIG91dEJ1ZmZlcihtX3NpemUpOwotICAgIHVpbnQ4X3QqIG91
dERhdGEgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihvdXRCdWZmZXIuYnVmZmVyKCkpOwor
ICAgIEJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyIG91dEJ1ZmZlcihtX3NpemUpOworICAgIHVp
bnQ4X3QqIG91dERhdGEgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihvdXRCdWZmZXIuZGF0
YSgpKTsKICNlbmRpZgogI2lmIENQVShBUk02NCkKICAgICBSRUxFQVNFX0FTU0VSVChyb3VuZFVw
VG9NdWx0aXBsZU9mPHNpemVvZih1bnNpZ25lZCk+KG91dERhdGEpID09IG91dERhdGEpOwo=
</data>
<flag name="review"
          id="416439"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401067</attachid>
            <date>2020-06-04 13:09:07 -0700</date>
            <delta_ts>2020-06-04 13:09:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>212765-2.patch</filename>
            <type>text/plain</type>
            <size>4307</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNTQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDIwLTA2LTA0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhIFRocmVhZCBTcGVjaWZpYyBCdWZmZXIgZm9yIExpbmtCdWZmZXIgd2hlbiBDb21w
YWN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI3NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhIHRocmVhZCBsb2NhbCBidWZmZXIgZm9yIENQVSB0eXBlcyB0aGF0IHVzZSBhIHNlY29u
ZCBidWZmZXIgd2hlbiBjb21wYWN0aW5nLgorICAgICAgICBUaGlzIGlzIHZlcnkgc2ltaWxhcnkg
dG8gdGhlIHdvcmsgZG9uZSBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEyNTYyLgorCisgICAgICAgICogYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwOgorICAgICAg
ICAoSlNDOjp0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyKToKKyAgICAg
ICAgKEpTQzo6QnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXI6OkJyYW5jaENvbXBhY3Rpb25MaW5r
QnVmZmVyKToKKyAgICAgICAgKEpTQzo6QnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXI6On5CcmFu
Y2hDb21wYWN0aW9uTGlua0J1ZmZlcik6CisgICAgICAgIChKU0M6OkJyYW5jaENvbXBhY3Rpb25M
aW5rQnVmZmVyOjpkYXRhKToKKyAgICAgICAgKEpTQzo6QnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZm
ZXI6OnRha2VCdWZmZXJJZkxhcmdlcik6CisgICAgICAgIChKU0M6OkJyYW5jaENvbXBhY3Rpb25M
aW5rQnVmZmVyOjpzaXplKToKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6Y29weUNvbXBhY3RB
bmRMaW5rQ29kZSk6CisKIDIwMjAtMDYtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgV29yayBhcm91bmQgYnJva2VuIHN5c3RlbSB2ZXJzaW9uIG1h
Y3JvCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5jcHAJKHJldmlzaW9uIDI2MjQ1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTGlua0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksODUgQEAgTGlu
a0J1ZmZlcjo6Q29kZVJlZjxMaW5rQnVmZmVyUHRyVGFnPiBMaQogfQogCiAjaWYgRU5BQkxFKEJS
QU5DSF9DT01QQUNUSU9OKQorI2lmICFDUFUoQVJNNjRFKSB8fCAhRU5BQkxFKEZBU1RfSklUX1BF
Uk1JU1NJT05TKQorY2xhc3MgQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXI7CisKK3VzaW5nIFRo
cmVhZFNwZWNpZmljQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIgPSBUaHJlYWRTcGVjaWZpYzxC
cmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlciwgV1RGOjpDYW5CZUdDVGhyZWFkOjpUcnVlPjsKKwor
c3RhdGljIFRocmVhZFNwZWNpZmljQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIqIHRocmVhZFNw
ZWNpZmljQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXJQdHI7CisKK3N0YXRpYyBUaHJlYWRTcGVj
aWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyJiB0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBh
Y3Rpb25MaW5rQnVmZmVyKCkKK3sKK3N0YXRpYyBzdGQ6Om9uY2VfZmxhZyBmbGFnOworICAgIHN0
ZDo6Y2FsbF9vbmNlKAorICAgICAgICBmbGFnLAorICAgICAgICBbXSAoKSB7CisgICAgICAgICAg
ICB0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyUHRyID0gbmV3IFRocmVh
ZFNwZWNpZmljQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIoKTsKKyAgICAgICAgfSk7CisgICAg
cmV0dXJuICp0aHJlYWRTcGVjaWZpY0JyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyUHRyOworfQor
CitERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihCcmFuY2hDb21wYWN0aW9u
TGlua0J1ZmZlcik7CisKK2NsYXNzIEJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlcik7CitwdWJsaWM6
CisgICAgQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXIoKQorICAgIHsKKyAgICB9CisKKyAgICBC
cmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlcihzaXplX3Qgc2l6ZSkKKyAgICB7CisgICAgICAgIGF1
dG8mIHRocmVhZFNwZWNpZmljID0gdGhyZWFkU3BlY2lmaWNCcmFuY2hDb21wYWN0aW9uTGlua0J1
ZmZlcigpOworCisgICAgICAgIGlmICh0aHJlYWRTcGVjaWZpYy0+c2l6ZSgpID49IHNpemUpCisg
ICAgICAgICAgICB0YWtlQnVmZmVySWZMYXJnZXIoKnRocmVhZFNwZWNpZmljKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICBtX3NpemUgPSBzaXplOworICAgICAgICAgICAgbV9kYXRhID0g
c3RhdGljX2Nhc3Q8dWludDhfdCo+KEJyYW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyTWFsbG9jOjpt
YWxsb2Moc2l6ZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgfkJyYW5jaENvbXBhY3Rpb25M
aW5rQnVmZmVyKCkKKyAgICB7CisgICAgICAgIGF1dG8mIHRocmVhZFNwZWNpZmljID0gdGhyZWFk
U3BlY2lmaWNCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlcigpOworICAgICAgICB0aHJlYWRTcGVj
aWZpYy0+dGFrZUJ1ZmZlcklmTGFyZ2VyKCp0aGlzKTsKKworICAgICAgICBpZiAobV9kYXRhKQor
ICAgICAgICAgICAgQnJhbmNoQ29tcGFjdGlvbkxpbmtCdWZmZXJNYWxsb2M6OmZyZWUobV9kYXRh
KTsKKyAgICB9CisKKyAgICB1aW50OF90KiBkYXRhKCkKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2RhdGE7CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgdGFrZUJ1ZmZlcklmTGFyZ2VyKEJy
YW5jaENvbXBhY3Rpb25MaW5rQnVmZmVyJiBvdGhlcikKKyAgICB7CisgICAgICAgIGlmIChzaXpl
KCkgPj0gb3RoZXIuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICht
X2RhdGEpCisgICAgICAgICAgICBCcmFuY2hDb21wYWN0aW9uTGlua0J1ZmZlck1hbGxvYzo6ZnJl
ZShtX2RhdGEpOworCisgICAgICAgIG1fZGF0YSA9IG90aGVyLm1fZGF0YTsKKyAgICAgICAgbV9z
aXplID0gb3RoZXIubV9zaXplOworCisgICAgICAgIG90aGVyLm1fZGF0YSA9IG51bGxwdHI7Cisg
ICAgICAgIG90aGVyLm1fc2l6ZSA9IDA7CisgICAgfQorCisgICAgc2l6ZV90IHNpemUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fc2l6ZTsKKyAgICB9CisKKyAgICB1aW50OF90KiBtX2RhdGEg
eyBudWxscHRyIH07CisgICAgc2l6ZV90IG1fc2l6ZSB7IDAgfTsKK307CisjZW5kaWYKKwogc3Rh
dGljIEFMV0FZU19JTkxJTkUgdm9pZCByZWNvcmRMaW5rT2Zmc2V0cyhBc3NlbWJsZXJEYXRhJiBh
c3NlbWJsZXJEYXRhLCBpbnQzMl90IHJlZ2lvblN0YXJ0LCBpbnQzMl90IHJlZ2lvbkVuZCwgaW50
MzJfdCBvZmZzZXQpCiB7CiAgICAgaW50MzJfdCBwdHIgPSByZWdpb25TdGFydCAvIHNpemVvZihp
bnQzMl90KTsKQEAgLTE0Niw4ICsyMjUsOCBAQCB2b2lkIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0
QW5kTGlua0NvZGUoCiAgICAgQVJNNjRFSGFzaCB2ZXJpZnlVbmNvbXBhY3RlZEhhc2g7CiAgICAg
dWludDhfdCogb3V0RGF0YSA9IGNvZGVPdXREYXRhOwogI2Vsc2UKLSAgICBBc3NlbWJsZXJEYXRh
IG91dEJ1ZmZlcihtX3NpemUpOwotICAgIHVpbnQ4X3QqIG91dERhdGEgPSByZWludGVycHJldF9j
YXN0PHVpbnQ4X3QqPihvdXRCdWZmZXIuYnVmZmVyKCkpOworICAgIEJyYW5jaENvbXBhY3Rpb25M
aW5rQnVmZmVyIG91dEJ1ZmZlcihtX3NpemUpOworICAgIHVpbnQ4X3QqIG91dERhdGEgPSByZWlu
dGVycHJldF9jYXN0PHVpbnQ4X3QqPihvdXRCdWZmZXIuZGF0YSgpKTsKICNlbmRpZgogI2lmIENQ
VShBUk02NCkKICAgICBSRUxFQVNFX0FTU0VSVChyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZih1
bnNpZ25lZCk+KG91dERhdGEpID09IG91dERhdGEpOwo=
</data>
<flag name="review"
          id="416460"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>