<?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>138637</bug_id>
          
          <creation_ts>2014-11-11 15:44:44 -0800</creation_ts>
          <short_desc>Use scope register when processing op_resolve_scope in LLInt and Baseline JIT</short_desc>
          <delta_ts>2014-11-11 21:57:57 -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>312.x</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>136724</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>buildbot</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1048001</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-11-11 15:44:44 -0800</bug_when>
    <thetext>The current code uses exec-&gt;scope(), but should be changed to use the scope register provided in the byte code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048016</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-11-11 16:05:44 -0800</bug_when>
    <thetext>This is for the LLInt and baseline JIT.  The DFG and FTL changes will be done separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048021</commentid>
    <comment_count>2</comment_count>
      <attachid>241390</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-11-11 16:17:26 -0800</bug_when>
    <thetext>Created attachment 241390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048063</commentid>
    <comment_count>3</comment_count>
      <attachid>241390</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-11-11 18:20:37 -0800</bug_when>
    <thetext>Comment on attachment 241390
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048065</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-11-11 18:33:49 -0800</bug_when>
    <thetext>Committed r175998: &lt;http://trac.webkit.org/changeset/175998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048099</commentid>
    <comment_count>5</comment_count>
      <attachid>241390</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-11-11 21:24:04 -0800</bug_when>
    <thetext>Comment on attachment 241390
Patch

I think it would be better for the JIT to load the scope into a register, and pass it to its helper functions as a JSScope*.

It&apos;s awkward to ask a helper function to muck around in your stack in order to load things out. And it&apos;s not a viable strategy for our optimizing engines, which may choose not to store things back to the stack in simple ways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048103</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-11-11 21:57:57 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 241390 [details]
&gt; Patch
&gt; 
&gt; I think it would be better for the JIT to load the scope into a register,
&gt; and pass it to its helper functions as a JSScope*.
&gt; 
&gt; It&apos;s awkward to ask a helper function to muck around in your stack in order
&gt; to load things out. And it&apos;s not a viable strategy for our optimizing
&gt; engines, which may choose not to store things back to the stack in simple
&gt; ways.

The helper operationResolveScope() is only used by the baseline JIT.

This is similar to the way operationPopScope() works, except that operationPopScope also writes the value back to the stack.  The operationPush* helpers also write to the stack.  Seems like we should change all to work the same way.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241390</attachid>
            <date>2014-11-11 16:17:26 -0800</date>
            <delta_ts>2014-11-11 18:20:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>138637.patch</filename>
            <type>text/plain</type>
            <size>11061</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1OTgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE0LTExLTExICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFVzZSBzY29wZSByZWdpc3RlciB3aGVuIHByb2Nlc3Npbmcgb3BfcmVzb2x2ZV9zY29wZSBp
biBMTEludCBhbmQgQmFzZWxpbmUgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzg2MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaWxsZWQgb3V0IG9wX3Jlc29sdmVfc2NvcGUgcHJvY2Vzc2luZyB0
byB1c2UgdGhlIHNjb3BlIG9wZXJhbmQgdG8gYWNjZXNzIHRoZSBjdXJyZW50CisgICAgICAgIHNj
b3BlIGNoYWluLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0
L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAg
ICAgIEFkZGVkIHNjb3BlIHZpcnR1YWwgcmVnaXN0ZXIgcGFyYW1ldGVyIHRvIGVtaXRSZXNvbHZl
Q2xvc3VyZSgpLiAgQWRkZWQgbmV3IGNhbGxPcGVyYXRpb24oKSB0bworICAgICAgICBzdXBwb3J0
IHRoZSBhZGRpdGlvbmFsIGFyZ3VtZW50LgorCisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0UmVzb2x2ZUNsb3N1cmUpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdFNsb3dfb3BfcmVzb2x2ZV9zY29wZSk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNj
ZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKToKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0U2xvd19vcF9yZXNvbHZlX3Njb3BlKToKKyAgICAgICAgKiBsbGludC9MTEludFNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6
CisgICAgICAgIEFkZGVkICJzY29wZSIgcGFyYW1ldGVyIHRvIGVtaXRSZXNvbHZlQ2xvc3VyZSgp
LiAgUGFzc2VkIHNjb3BlIHJlZ2lzdGVyIGluZGV4IHRvIHNsb3cgcGF0aC4KKyAgICAgICAgVXNl
ZCBzY29wZSB2aXJ0dWFsIHJlZ2lzdGVyIGluc3RlYWQgb2YgSlNTdGFjazo6U2NvcGVDaGFpbi4K
KwogMjAxNC0xMS0xMSAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAg
ICAgIEhhbmRsZSBjYXNlcyBpbiBTdGFja1Zpc2l0b3I6OkZyYW1lOjpleGlzdGluZ0FyZ3VtZW50
cygpIHdoZW4gbGV4aWNhbEVudmlyb25tZW50IGFuZC9vciB1bm1vZGlmaWVkQXJndW1lbnRzUmVn
aXN0ZXIgaXMgbm90IHNldCB1cCB5ZXQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2
aXNpb24gMTc1OTY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjI1LDcgKzYyNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lk
IGVtaXRSaWdodFNoaWZ0U2xvd0Nhc2UoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiwgYm9vbCBpc1Vuc2lnbmVkKTsKIAogICAgICAgICB2b2lkIGVtaXRWYXJJ
bmplY3Rpb25DaGVjayhib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKTsKLSAgICAgICAgdm9p
ZCBlbWl0UmVzb2x2ZUNsb3N1cmUoaW50IGRzdCwgYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNr
cywgdW5zaWduZWQgZGVwdGgpOworICAgICAgICB2b2lkIGVtaXRSZXNvbHZlQ2xvc3VyZShpbnQg
ZHN0LCBpbnQgc2NvcGUsIGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRl
cHRoKTsKICAgICAgICAgdm9pZCBlbWl0TG9hZFdpdGhTdHJ1Y3R1cmVDaGVjayhpbnQgc2NvcGUs
IFN0cnVjdHVyZSoqIHN0cnVjdHVyZVNsb3QpOwogICAgICAgICB2b2lkIGVtaXRHZXRHbG9iYWxQ
cm9wZXJ0eSh1aW50cHRyX3QqIG9wZXJhbmRTbG90KTsKICAgICAgICAgdm9pZCBlbWl0R2V0R2xv
YmFsVmFyKHVpbnRwdHJfdCBvcGVyYW5kKTsKQEAgLTcwNSw2ICs3MDUsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FUCwgaW50LCB2b2lkKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oV2l0aFByb2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VQYywgaW50LCBJbnN0
cnVjdGlvbiopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VaLCBpbnQsIGludDMyX3QpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VaWiwgaW50LCBpbnQzMl90LCBpbnQz
Ml90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQX0pJVE9w
ZXJhdGlvbl9FSlMsIEdQUlJlZywgc2l6ZV90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3Bl
cmF0aW9uX0VKLCBSZWdpc3RlcklEKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lcy5oCShyZXZpc2lvbiAxNzU5NjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjc2LDYgKzI3NiwxMiBAQCBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAor
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRVpaIG9wZXJhdGlvbiwgaW50IGRzdCwgaW50MzJfdCBhcmcxLCBpbnQzMl90
IGFyZzIpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihh
cmcxKSwgVHJ1c3RlZEltbTMyKGFyZzIpKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJh
dGlvbl9FQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIp
CiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNp
b24gMTc1OTY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTcxOCwxMiArMTcxOCwxMyBAQCBjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblN3aXRjaFN0cmluCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UmVzb2x2ZVNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBpZGVudGlmaWVySW5kZXgpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlc29sdmVTY29wZShFeGVjU3Rh
dGUqIGV4ZWMsIGludDMyX3Qgc2NvcGVSZWcsIGludDMyX3QgaWRlbnRpZmllckluZGV4KQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cigmdm0sIGV4ZWMpOwogICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gZXhlYy0+Y29kZUJs
b2NrKCktPmlkZW50aWZpZXIoaWRlbnRpZmllckluZGV4KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTU2NvcGU6OnJlc29sdmUoZXhlYywgZXhlYy0+c2NvcGUoKSwgaWRlbnQpKTsKKyAg
ICBKU1Njb3BlKiBzY29wZSA9IGV4ZWMtPnVuY2hlY2tlZFIoc2NvcGVSZWcpLlJlZ2lzdGVyOjpz
Y29wZSgpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNTY29wZTo6cmVzb2x2ZShleGVj
LCBzY29wZSwgaWRlbnQpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRGcm9tU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQ
QykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZp
c2lvbiAxNzU5NjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEwLDcgKzMxMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVG8KIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3dpdGNo
Q2hhcldpdGhVbmtub3duS2V5VHlwZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNp
emVfdCB0YWJsZUluZGV4KSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblN3aXRjaEltbVdpdGhVbmtub3duS2V5VHlwZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4KSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblN3aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5VHlwZShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4KSBXVEZfSU5URVJOQUw7Ci1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlc29sdmVTY29wZShFeGVjU3RhdGUq
LCBpbnQzMl90IGlkZW50aWZpZXJJbmRleCkgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCBz
Y29wZSwgaW50MzJfdCBpZGVudGlmaWVySW5kZXgpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0RnJvbVNjb3BlKEV4ZWNTdGF0ZSosIEluc3Ry
dWN0aW9uKiBieXRlY29kZVBDKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0VG9TY29wZShFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykgV1RG
X0lOVEVSTkFMOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHJldmlzaW9uIDE3NTk2NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYxMiwxMSArNjEyLDExIEBAIHZvaWQgSklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2so
Ym9vbCBuZWUKICAgICBhZGRTbG93Q2FzZShicmFuY2g4KEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3Mo
bV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT52YXJJbmplY3Rpb25XYXRjaHBvaW50KCktPmFk
ZHJlc3NPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKIH0KIAotdm9p
ZCBKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZShpbnQgZHN0LCBib29sIG5lZWRzVmFySW5qZWN0aW9u
Q2hlY2tzLCB1bnNpZ25lZCBkZXB0aCkKK3ZvaWQgSklUOjplbWl0UmVzb2x2ZUNsb3N1cmUoaW50
IGRzdCwgaW50IHNjb3BlLCBib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCB1bnNpZ25lZCBk
ZXB0aCkKIHsKICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVj
a3MpOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdUMSk7Ci0g
ICAgZW1pdExvYWRQYXlsb2FkKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIHJlZ1QwKTsKKyAgICBlbWl0
TG9hZFBheWxvYWQoc2NvcGUsIHJlZ1QwKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZGVwdGg7ICsraSkKICAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBKU1Njb3BlOjpvZmZz
ZXRPZk5leHQoKSksIHJlZ1QwKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwpA
QCAtNjI1LDYgKzYyNSw3IEBAIHZvaWQgSklUOjplbWl0UmVzb2x2ZUNsb3N1cmUoaW50IGRzdCwg
Ym8KIHZvaWQgSklUOjplbWl0X29wX3Jlc29sdmVfc2NvcGUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKKyAgICBpbnQgc2NvcGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIFJlc29sdmVUeXBlIHJlc29sdmVUeXBlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZVR5cGU+KGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwogICAgIHVuc2lnbmVkIGRlcHRoID0gY3Vy
cmVudEluc3RydWN0aW9uWzVdLnUub3BlcmFuZDsKIApAQCAtNjQwLDcgKzY0MSw3IEBAIHZvaWQg
SklUOjplbWl0X29wX3Jlc29sdmVfc2NvcGUoSW5zdHJ1Y3QKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDbG9zdXJlVmFyOgogICAgIGNhc2UgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3M6Ci0gICAgICAgIGVtaXRSZXNvbHZlQ2xvc3VyZShkc3QsIG5lZWRzVmFySW5qZWN0aW9uQ2hl
Y2tzKHJlc29sdmVUeXBlKSwgZGVwdGgpOworICAgICAgICBlbWl0UmVzb2x2ZUNsb3N1cmUoZHN0
LCBzY29wZSwgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpLCBkZXB0aCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRHluYW1pYzoKICAgICAgICAgYWRkU2xvd0Nhc2UoanVt
cCgpKTsKQEAgLTY1OSw4ICs2NjAsOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9z
Y29wZShJbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAg
ICBpbnQzMl90IHNjb3BlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBp
bnQzMl90IGluZGVudGlmaWVySW5kZXggPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
OwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVzb2x2ZVNjb3BlLCBkc3QsIGluZGVudGlm
aWVySW5kZXgpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVzb2x2ZVNjb3BlLCBkc3Qs
IHNjb3BlLCBpbmRlbnRpZmllckluZGV4KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRMb2FkV2l0aFN0
cnVjdHVyZUNoZWNrKGludCBzY29wZSwgU3RydWN0dXJlKiogc3RydWN0dXJlU2xvdCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCShy
ZXZpc2lvbiAxNzU5NjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTkwLDEwICs1OTAsMTAgQEAgdm9pZCBKSVQ6
OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5lZQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgo
RXF1YWwsIEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPnZhcklu
amVjdGlvbldhdGNocG9pbnQoKS0+YWRkcmVzc09mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0lu
dmFsaWRhdGVkKSkpOwogfQogCi12b2lkIEpJVDo6ZW1pdFJlc29sdmVDbG9zdXJlKGludCBkc3Qs
IGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRoKQordm9pZCBKSVQ6
OmVtaXRSZXNvbHZlQ2xvc3VyZShpbnQgZHN0LCBpbnQgc2NvcGUsIGJvb2wgbmVlZHNWYXJJbmpl
Y3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRoKQogewogICAgIGVtaXRWYXJJbmplY3Rpb25DaGVj
ayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihK
U1N0YWNrOjpTY29wZUNoYWluLCByZWdUMCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihz
Y29wZSwgcmVnVDApOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZXB0aDsgKytpKQog
ICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIEpTU2NvcGU6Om9mZnNldE9mTmV4dCgpKSwg
cmVnVDApOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKQEAgLTYwMiw2ICs2MDIs
NyBAQCB2b2lkIEpJVDo6ZW1pdFJlc29sdmVDbG9zdXJlKGludCBkc3QsIGJvCiB2b2lkIEpJVDo6
ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50
IHNjb3BlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBSZXNvbHZlVHlw
ZSByZXNvbHZlVHlwZSA9IHN0YXRpY19jYXN0PFJlc29sdmVUeXBlPihjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5vcGVyYW5kKTsKICAgICB1bnNpZ25lZCBkZXB0aCA9IGN1cnJlbnRJbnN0cnVjdGlv
bls1XS51Lm9wZXJhbmQ7CiAKQEAgLTYxNiw3ICs2MTcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9y
ZXNvbHZlX3Njb3BlKEluc3RydWN0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2xvc3VyZVZh
cjoKICAgICBjYXNlIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgotICAgICAgICBl
bWl0UmVzb2x2ZUNsb3N1cmUoZHN0LCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlw
ZSksIGRlcHRoKTsKKyAgICAgICAgZW1pdFJlc29sdmVDbG9zdXJlKGRzdCwgc2NvcGUsIG5lZWRz
VmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwgZGVwdGgpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIER5bmFtaWM6CiAgICAgICAgIGFkZFNsb3dDYXNlKGp1bXAoKSk7CkBAIC02MzUs
OCArNjM2LDkgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfc2NvcGUoSW5zdAogICAg
ICAgICByZXR1cm47CiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisgICAgaW50MzJfdCBzY29w
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50MzJfdCBpbmRlbnRp
ZmllckluZGV4ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvblJlc29sdmVTY29wZSwgZHN0LCBpbmRlbnRpZmllckluZGV4KTsKKyAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlc29sdmVTY29wZSwgZHN0LCBzY29wZSwgaW5kZW50
aWZpZXJJbmRleCk7CiB9CiAKIHZvaWQgSklUOjplbWl0TG9hZFdpdGhTdHJ1Y3R1cmVDaGVjayhp
bnQgc2NvcGUsIFN0cnVjdHVyZSoqIHN0cnVjdHVyZVNsb3QpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE3NTk2NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNTgsNyArMTM1OCw4IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9yZXNvbHZlX3MKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50ID0gZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNbM10udS5vcGVyYW5k
KTsKLSAgICBMTElOVF9SRVRVUk4oSlNTY29wZTo6cmVzb2x2ZShleGVjLCBleGVjLT5zY29wZSgp
LCBpZGVudCkpOworICAgIEpTU2NvcGUqIHNjb3BlID0gTExJTlRfT1AoMikuUmVnaXN0ZXI6OnNj
b3BlKCk7CisgICAgTExJTlRfUkVUVVJOKEpTU2NvcGU6OnJlc29sdmUoZXhlYywgc2NvcGUsIGlk
ZW50KSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9zY29w
ZSkK
</data>
<flag name="review"
          id="266251"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>