<?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>20862</bug_id>
          
          <creation_ts>2008-09-15 15:29:31 -0700</creation_ts>
          <short_desc>Inline code generation of eq_null/neq_null for CTI.</short_desc>
          <delta_ts>2008-09-15 16:33:52 -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>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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>91253</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-09-15 15:29:31 -0700</bug_when>
    <thetext>Inline code generation of eq_null/neq_null for CTI.  Uses vptr checking for StringObjectsThatAreMasqueradingAsBeingUndefined.  In the long run, the masquerading may be handled differently (through the StructureIDs - see bug #20823).

&gt;1% on v8-tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91254</commentid>
    <comment_count>1</comment_count>
      <attachid>23448</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-09-15 15:31:28 -0700</bug_when>
    <thetext>Created attachment 23448
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91256</commentid>
    <comment_count>2</comment_count>
      <attachid>23448</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-09-15 15:40:34 -0700</bug_when>
    <thetext>Comment on attachment 23448
The patch

r=me, but i give a stern parental was of the index finger at this vptr abuse -- we need to get off of it!

Also, please add a comment in JSObject.h by the declaration of JSObject::masqueradesAsUndefined that basically says, &quot;You can&apos;t usefully override this virtual function without hand-coding some assembly in CTI.cpp&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91257</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-09-15 15:41:03 -0700</bug_when>
    <thetext>*wag

I said wag!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91269</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-09-15 16:33:52 -0700</bug_when>
    <thetext>Sending        JavaScriptCore/ChangeLog
Sending        JavaScriptCore/VM/CTI.cpp
Sending        JavaScriptCore/VM/CTI.h
Sending        JavaScriptCore/VM/Machine.cpp
Sending        JavaScriptCore/VM/Machine.h
Sending        JavaScriptCore/kjs/JSCell.h
Sending        JavaScriptCore/kjs/JSWrapperObject.h
Sending        JavaScriptCore/kjs/StringObject.h
Sending        JavaScriptCore/kjs/StringObjectThatMasqueradesAsUndefined.h
Transmitting file data .........
Committed revision 36462.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23448</attachid>
            <date>2008-09-15 15:31:28 -0700</date>
            <delta_ts>2008-09-15 15:40:34 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>patch.eqnull.2.txt</filename>
            <type>text/plain</type>
            <size>12605</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2NDQ3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDgtMDktMTUgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElubGluZSBjb2RlIGdlbmVyYXRpb24gb2YgZXFf
bnVsbC9uZXFfbnVsbCBmb3IgQ1RJLiAgVXNlcyB2cHRyIGNoZWNraW5nIGZvcgorICAgICAgICBT
dHJpbmdPYmplY3RzVGhhdEFyZU1hc3F1ZXJhZGluZ0FzQmVpbmdVbmRlZmluZWQuICBJbiB0aGUg
bG9uZyBydW4sIHRoZQorICAgICAgICBtYXNxdWVyYWRpbmcgbWF5IGJlIGhhbmRsZWQgZGlmZmVy
ZW50bHkgKHRocm91Z2ggdGhlIFN0cnVjdHVyZUlEcyAtIHNlZSBidWcKKyAgICAgICAgIzIwODIz
KS4KKworICAgICAgICA+MSUgb24gdjgtdGVzdHMuCisKKyAgICAgICAgKiBWTS9DVEkuY3BwOgor
ICAgICAgICAoSlNDOjpDVEk6OmVtaXRKdW1wU2xvd0Nhc2VJZklzSlNDZWxsKToKKyAgICAgICAg
KEpTQzo6Q1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6Q1RJOjpw
cml2YXRlQ29tcGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogVk0vQ1RJLmg6CisgICAgICAgICog
Vk0vTWFjaGluZS5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6Ok1hY2hpbmUpOgorICAgICAg
ICAoSlNDOjpNYWNoaW5lOjpjdGlfb3BfZXFfbnVsbCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmU6
OmN0aV9vcF9uZXFfbnVsbCk6CisgICAgICAgICogVk0vTWFjaGluZS5oOgorICAgICAgICAoSlND
OjpNYWNoaW5lOjpkb2VzTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCk6CisgICAgICAgICoga2pzL0pT
V3JhcHBlck9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6Oik6CisgICAg
ICAgIChKU0M6OkpTV3JhcHBlck9iamVjdDo6SlNXcmFwcGVyT2JqZWN0KToKKyAgICAgICAgKiBr
anMvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6U3RyaW5nT2Jq
ZWN0KToKKyAgICAgICAgKiBranMvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQuaDoKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQ6OlN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKToKKwogMjAwOC0wOS0x
NSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4Cklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9DVEkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL1ZNL0NUSS5jcHAJKHJldmlzaW9uIDM2NDQ3KQorKysgSmF2YVNjcmlwdENvcmUvVk0vQ1RJ
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE3LDYgKzMxNywxMiBAQCBBTFdBWVNfSU5MSU5FIFg4
NkFzc2VtYmxlcjo6Sm1wU3JjIENUSTo6CiAgICAgcmV0dXJuIGNhbGw7CiB9CiAKK0FMV0FZU19J
TkxJTkUgdm9pZCBDVEk6OmVtaXRKdW1wU2xvd0Nhc2VJZklzSlNDZWxsKFg4NkFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCByZWcsIHVuc2lnbmVkIG9wY29kZUluZGV4KQoreworICAgIG1faml0LnRlc3Rs
X2kzMnIoSlNJbW1lZGlhdGU6OlRhZ01hc2ssIHJlZyk7CisgICAgbV9zbG93Q2FzZXMuYXBwZW5k
KFNsb3dDYXNlRW50cnkobV9qaXQuZW1pdFVubGlua2VkSmUoKSwgb3Bjb2RlSW5kZXgpKTsKK30K
KwogQUxXQVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKFg4
NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcsIHVuc2lnbmVkIG9wY29kZUluZGV4KQogewogICAg
IG1faml0LnRlc3RsX2kzMnIoSlNJbW1lZGlhdGU6OlRhZ01hc2ssIHJlZyk7CkBAIC0xMzg5LDE2
ICsxMzk1LDMyIEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZXFfbnVsbDogewotICAgICAg
ICAgICAgZW1pdEdldFB1dEFyZyhpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kLCAwLCBYODY6
OmVjeCk7Ci0gICAgICAgICAgICBlbWl0Q2FsbChpLCBNYWNoaW5lOjpjdGlfb3BfZXFfbnVsbCk7
CisgICAgICAgICAgICBlbWl0R2V0QXJnKGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIFg4
Njo6ZWR4KTsKKworICAgICAgICAgICAgLy8gZ28gdG8gYSBzbG93IGNhc2UgZWl0aGVyIGlmIHRo
aXMgaXMgbm90IGFuIGltbWVkaWF0ZSwgb3IgaWYgdGhlIGltbWVkaWF0ZSBpcyBub3QgdW5kZWZp
bmVkL251bGwuCisgICAgICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZJc0pTQ2VsbChYODY6OmVk
eCwgaSk7CisgICAgICAgICAgICBtX2ppdC5hbmRsX2kzMnIofkpTSW1tZWRpYXRlOjpFeHRlbmRl
ZFRhZ0JpdFVuZGVmaW5lZCwgWDg2OjplZHgpOworICAgICAgICAgICAgbV9qaXQuY21wbF9pMzJy
KEpTSW1tZWRpYXRlOjpGdWxsVGFnVHlwZU51bGwsIFg4Njo6ZWR4KTsKKyAgICAgICAgICAgIG1f
c2xvd0Nhc2VzLmFwcGVuZChTbG93Q2FzZUVudHJ5KG1faml0LmVtaXRVbmxpbmtlZEpuZSgpLCBp
KSk7CisKKyAgICAgICAgICAgIG1faml0Lm1vdmxfaTMycihyZWludGVycHJldF9jYXN0PHVpbnQz
Ml90PihKU0ltbWVkaWF0ZTo6dHJ1ZUltbWVkaWF0ZSgpKSwgWDg2OjplYXgpOwogICAgICAgICAg
ICAgZW1pdFB1dFJlc3VsdChpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKKwogICAgICAg
ICAgICAgaSArPSAzOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9uZXFfbnVsbDogewotICAgICAgICAgICAgZW1pdEdldFB1dEFyZyhpbnN0cnVjdGlvbltp
ICsgMl0udS5vcGVyYW5kLCAwLCBYODY6OmVjeCk7Ci0gICAgICAgICAgICBlbWl0Q2FsbChpLCBN
YWNoaW5lOjpjdGlfb3BfbmVxX251bGwpOworICAgICAgICAgICAgZW1pdEdldEFyZyhpbnN0cnVj
dGlvbltpICsgMl0udS5vcGVyYW5kLCBYODY6OmVkeCk7CisKKyAgICAgICAgICAgIC8vIGdvIHRv
IGEgc2xvdyBjYXNlIGVpdGhlciBpZiB0aGlzIGlzIG5vdCBhbiBpbW1lZGlhdGUsIG9yIGlmIHRo
ZSBpbW1lZGlhdGUgaXMgbm90IHVuZGVmaW5lZC9udWxsLgorICAgICAgICAgICAgZW1pdEp1bXBT
bG93Q2FzZUlmSXNKU0NlbGwoWDg2OjplZHgsIGkpOworICAgICAgICAgICAgbV9qaXQuYW5kbF9p
MzJyKH5KU0ltbWVkaWF0ZTo6RXh0ZW5kZWRUYWdCaXRVbmRlZmluZWQsIFg4Njo6ZWR4KTsKKyAg
ICAgICAgICAgIG1faml0LmNtcGxfaTMycihKU0ltbWVkaWF0ZTo6RnVsbFRhZ1R5cGVOdWxsLCBY
ODY6OmVkeCk7CisgICAgICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VFbnRyeSht
X2ppdC5lbWl0VW5saW5rZWRKbmUoKSwgaSkpOworCisgICAgICAgICAgICBtX2ppdC5tb3ZsX2kz
MnIocmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdD4oSlNJbW1lZGlhdGU6OmZhbHNlSW1tZWRpYXRl
KCkpLCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0UHV0UmVzdWx0KGluc3RydWN0aW9uW2kg
KyAxXS51Lm9wZXJhbmQpOworCiAgICAgICAgICAgICBpICs9IDM7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtMTg0Nyw2ICsxODY5LDUwIEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29t
cGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBD
VElfQ09NUElMRV9CSU5BUllfT1BfU0xPV19DQVNFKG9wX211bCk7CisgICAgICAgIGNhc2Ugb3Bf
ZXFfbnVsbDogeworICAgICAgICAgICAgbV9qaXQubGluayhpdGVyLT5mcm9tLCBtX2ppdC5sYWJl
bCgpKTsKKworICAgICAgICAgICAgLy8gVmFsdWUgaXMgYSBKU0NlbGwgLSBzcGVjdWxhdGUgZmFs
c2UsIGNoZWNrIGZvciBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC4KKyAg
ICAgICAgICAgIG1faml0Lm1vdmxfaTMycihyZWludGVycHJldF9jYXN0PHVpbnQzMl90PihKU0lt
bWVkaWF0ZTo6ZmFsc2VJbW1lZGlhdGUoKSksIFg4Njo6ZWF4KTsKKyAgICAgICAgICAgIGVtaXRQ
dXRSZXN1bHQoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CisgICAgICAgICAgICBtX2pp
dC5jbXBsX2kzMm0ocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4obV9tYWNoaW5lLT5tX2pzU3Ry
aW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWRWcHRyKSwgWDg2OjplZHgpOworICAg
ICAgICAgICAgbV9qaXQubGluayhtX2ppdC5lbWl0VW5saW5rZWRKbmUoKSwgbV9sYWJlbHNbaSAr
IDNdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVmFsdWUgaXMgYSBTdHJpbmdPYmpl
Y3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZAorICAgICAgICAgICAgbV9qaXQubW92bF9pMzJy
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Q+KEpTSW1tZWRpYXRlOjp0cnVlSW1tZWRpYXRlKCkp
LCBYODY6OmVheCk7CisgICAgICAgICAgICBlbWl0UHV0UmVzdWx0KGluc3RydWN0aW9uW2kgKyAx
XS51Lm9wZXJhbmQpOworICAgICAgICAgICAgbV9qaXQubGluayhtX2ppdC5lbWl0VW5saW5rZWRK
bXAoKSwgbV9sYWJlbHNbaSArIDNdKTsKKworICAgICAgICAgICAgLy8gVmFsdWUgaXMgYW4gaW1t
ZWRpYXRlIG90aGVyIHRoYW4gdW5kZWZpbmVkL251bGwKKyAgICAgICAgICAgIG1faml0Lmxpbmso
KCsraXRlciktPmZyb20sIG1faml0LmxhYmVsKCkpOworICAgICAgICAgICAgbV9qaXQubW92bF9p
MzJyKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Q+KEpTSW1tZWRpYXRlOjpmYWxzZUltbWVkaWF0
ZSgpKSwgWDg2OjplYXgpOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVjdGlvbltp
ICsgMV0udS5vcGVyYW5kKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaSArPSAzOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9uZXFfbnVsbDogewor
ICAgICAgICAgICAgbV9qaXQubGluayhpdGVyLT5mcm9tLCBtX2ppdC5sYWJlbCgpKTsKKworICAg
ICAgICAgICAgLy8gVmFsdWUgaXMgYSBKU0NlbGwgLSBzcGVjdWxhdGUgZmFsc2UsIGNoZWNrIGZv
ciBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC4KKyAgICAgICAgICAgIG1f
aml0Lm1vdmxfaTMycihyZWludGVycHJldF9jYXN0PHVpbnQzMl90PihKU0ltbWVkaWF0ZTo6dHJ1
ZUltbWVkaWF0ZSgpKSwgWDg2OjplYXgpOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0
cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKKyAgICAgICAgICAgIG1faml0LmNtcGxfaTMybShy
ZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihtX21hY2hpbmUtPm1fanNTdHJpbmdPYmplY3RUaGF0
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZFZwdHIpLCBYODY6OmVkeCk7CisgICAgICAgICAgICBtX2pp
dC5saW5rKG1faml0LmVtaXRVbmxpbmtlZEpuZSgpLCBtX2xhYmVsc1tpICsgM10pOworICAgICAg
ICAgICAgCisgICAgICAgICAgICAvLyBWYWx1ZSBpcyBhIFN0cmluZ09iamVjdFRoYXRNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkCisgICAgICAgICAgICBtX2ppdC5tb3ZsX2kzMnIocmVpbnRlcnByZXRf
Y2FzdDx1aW50MzJfdD4oSlNJbW1lZGlhdGU6OmZhbHNlSW1tZWRpYXRlKCkpLCBYODY6OmVheCk7
CisgICAgICAgICAgICBlbWl0UHV0UmVzdWx0KGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQp
OworICAgICAgICAgICAgbV9qaXQubGluayhtX2ppdC5lbWl0VW5saW5rZWRKbXAoKSwgbV9sYWJl
bHNbaSArIDNdKTsKKworICAgICAgICAgICAgLy8gVmFsdWUgaXMgYW4gaW1tZWRpYXRlIG90aGVy
IHRoYW4gdW5kZWZpbmVkL251bGwKKyAgICAgICAgICAgIG1faml0LmxpbmsoKCsraXRlciktPmZy
b20sIG1faml0LmxhYmVsKCkpOworICAgICAgICAgICAgbV9qaXQubW92bF9pMzJyKHJlaW50ZXJw
cmV0X2Nhc3Q8dWludDMyX3Q+KEpTSW1tZWRpYXRlOjp0cnVlSW1tZWRpYXRlKCkpLCBYODY6OmVh
eCk7CisgICAgICAgICAgICBlbWl0UHV0UmVzdWx0KGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJh
bmQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL0NU
SS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL0NUSS5oCShyZXZpc2lvbiAzNjQ0
NykKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0NUSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNyAr
MjQ0LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgaW50IHJlcGF0
Y2hPZmZzZXRHZXRCeUlkU3RydWN0dXJlSUQgPSAxOTsKICAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCByZXBhdGNoT2Zmc2V0R2V0QnlJZEJyYW5jaFRvU2xvd0Nhc2UgPSAyNTsKICAgICAgICAgc3Rh
dGljIGNvbnN0IGludCByZXBhdGNoT2Zmc2V0R2V0QnlJZFByb3BlcnR5TWFwT2Zmc2V0ID0gMzQ7
CisjaWYgRU5BQkxFKFNBTVBMSU5HX1RPT0wpCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcmVw
YXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSAyNzsKKyNlbHNlCiAgICAgICAgIHN0YXRp
YyBjb25zdCBpbnQgcmVwYXRjaE9mZnNldEdldEJ5SWRTbG93Q2FzZUNhbGwgPSAxNzsKKyNlbmRp
ZgogCiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlKE1hY2hpbmUqIG1h
Y2hpbmUsIEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0zNTEsNiAr
MzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUqIGdldENvbnN0YW50SW1t
ZWRpYXRlTnVtZXJpY0FyZyh1bnNpZ25lZCBzcmMpOwogICAgICAgICB1bnNpZ25lZCBnZXREZVRh
Z2dlZENvbnN0YW50SW1tZWRpYXRlKEpTVmFsdWUqIGltbSk7CiAKKyAgICAgICAgdm9pZCBDVEk6
OmVtaXRKdW1wU2xvd0Nhc2VJZklzSlNDZWxsKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcs
IHVuc2lnbmVkIG9wY29kZUluZGV4KTsKICAgICAgICAgdm9pZCBDVEk6OmVtaXRKdW1wU2xvd0Nh
c2VJZk5vdEpTQ2VsbChYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnLCB1bnNpZ25lZCBvcGNv
ZGVJbmRleCk7CiAgICAgICAgIHZvaWQgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tKFg4NkFzc2Vt
Ymxlcjo6UmVnaXN0ZXJJRCwgdW5zaWduZWQgb3Bjb2RlSW5kZXgpOwogICAgICAgICB2b2lkIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEltbXMoWDg2QXNzZW1ibGVyOjpSZWdpc3RlcklELCBYODZBc3Nl
bWJsZXI6OlJlZ2lzdGVySUQsIHVuc2lnbmVkIG9wY29kZUluZGV4KTsKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL1ZNL01hY2hpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL01h
Y2hpbmUuY3BwCShyZXZpc2lvbiAzNjQ0NykKKysrIEphdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiZGVidWdnZXIu
aCIKICNpbmNsdWRlICJvcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCisj
aW5jbHVkZSAiU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaCIKICNpbmNs
dWRlIDxzdGRpby5oPgogCiAjaWYgUExBVEZPUk0oREFSV0lOKQpAQCAtNTcyLDYgKzU3MywxMCBA
QCBNYWNoaW5lOjpNYWNoaW5lKCkKICAgICBtX2pzQXJyYXlWcHRyID0ganNBcnJheS0+dnB0cigp
OwogICAgIHN0YXRpY19jYXN0PEpTQ2VsbCo+KGpzQXJyYXkpLT5+SlNDZWxsKCk7CiAKKyAgICBT
dHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCoganNTdHJpbmdPYmplY3RUaGF0
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IG5ldyAoc3RvcmFnZSkgU3RyaW5nT2JqZWN0VGhhdE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQoU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQ6OlZQdHJTdGVhbGluZ0hhY2spOworICAgIG1fanNTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZFZwdHIgPSBqc1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkLT52cHRyKCk7CisgICAgc3RhdGljX2Nhc3Q8SlNDZWxsKj4oanNTdHJpbmdPYmplY3RUaGF0
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCktPn5KU0NlbGwoKTsKKwogICAgIEpTU3RyaW5nKiBqc1N0
cmluZyA9IG5ldyAoc3RvcmFnZSkgSlNTdHJpbmcoSlNTdHJpbmc6OlZQdHJTdGVhbGluZ0hhY2sp
OwogICAgIG1fanNTdHJpbmdWcHRyID0ganNTdHJpbmctPnZwdHIoKTsKICAgICBzdGF0aWNfY2Fz
dDxKU0NlbGwqPihqc1N0cmluZyktPn5KU0NlbGwoKTsKQEAgLTU0MDEsMTAgKzU0MDYsMTEgQEAg
dm9pZCBNYWNoaW5lOjpjdGlfb3BfZGVidWcoQ1RJX0FSR1MpCiBKU1ZhbHVlKiBNYWNoaW5lOjpj
dGlfb3BfZXFfbnVsbChDVElfQVJHUykKIHsKICAgICBKU1ZhbHVlKiBzcmMgPSBBUkdfc3JjMTsK
KyAgICAKICAgICBpZiAoc3JjLT5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4g
anNCb29sZWFuKHRydWUpOwogCi0gICAgcmV0dXJuIGpzQm9vbGVhbighSlNJbW1lZGlhdGU6Omlz
SW1tZWRpYXRlKHNyYykgJiYgc3RhdGljX2Nhc3Q8SlNDZWxsKj4oc3JjKS0+bWFzcXVlcmFkZUFz
VW5kZWZpbmVkKCkpOworICAgIHJldHVybiBqc0Jvb2xlYW4oQVJHX2V4ZWMtPm1hY2hpbmUoKS0+
ZG9lc01hc3F1ZXJhZGVzQXNVbmRlZmluZWQoc3JjKSk7CiB9CiAKIEpTVmFsdWUqIE1hY2hpbmU6
OmN0aV9vcF9uZXFfbnVsbChDVElfQVJHUykKQEAgLTU0MTMsNyArNTQxOSw3IEBAIEpTVmFsdWUq
IE1hY2hpbmU6OmN0aV9vcF9uZXFfbnVsbChDVElfQVIKICAgICBpZiAoc3JjLT5pc1VuZGVmaW5l
ZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4ganNCb29sZWFuKGZhbHNlKTsKIAotICAgIHJldHVy
biBqc0Jvb2xlYW4oSlNJbW1lZGlhdGU6OmlzSW1tZWRpYXRlKHNyYykgfHwgIXN0YXRpY19jYXN0
PEpTQ2VsbCo+KHNyYyktPm1hc3F1ZXJhZGVBc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4ganNC
b29sZWFuKCFBUkdfZXhlYy0+bWFjaGluZSgpLT5kb2VzTWFzcXVlcmFkZXNBc1VuZGVmaW5lZChz
cmMpKTsKIH0KIAogdm9pZCogTWFjaGluZTo6Y3RpX3ZtX3Rocm93KENUSV9BUkdTKQpJbmRleDog
SmF2YVNjcmlwdENvcmUvVk0vTWFjaGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L1ZNL01hY2hpbmUuaAkocmV2aXNpb24gMzY0NDcpCisrKyBKYXZhU2NyaXB0Q29yZS9WTS9NYWNo
aW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw2ICsyNTksNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBib29sIGlzSlNBcnJheShKU1ZhbHVlKiB2KSB7IHJldHVybiAhSlNJbW1lZGlh
dGU6OmlzSW1tZWRpYXRlKHYpICYmIHYtPmFzQ2VsbCgpLT52cHRyKCkgPT0gbV9qc0FycmF5VnB0
cjsgfQogICAgICAgICBib29sIGlzSlNTdHJpbmcoSlNWYWx1ZSogdikgeyByZXR1cm4gIUpTSW1t
ZWRpYXRlOjppc0ltbWVkaWF0ZSh2KSAmJiB2LT5hc0NlbGwoKS0+dnB0cigpID09IG1fanNTdHJp
bmdWcHRyOyB9CisgICAgICAgIGJvb2wgZG9lc01hc3F1ZXJhZGVzQXNVbmRlZmluZWQoSlNWYWx1
ZSogdikgeyByZXR1cm4gIUpTSW1tZWRpYXRlOjppc0ltbWVkaWF0ZSh2KSAmJiB2LT5hc0NlbGwo
KS0+dnB0cigpID09IG1fanNTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZFZw
dHI7IH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSos
IENvZGVCbG9jayosIEluc3RydWN0aW9uKiB2UEMsIEpTVmFsdWUqIGJhc2VWYWx1ZSwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
dm9pZCB1bmNhY2hlR2V0QnlJRChDb2RlQmxvY2sqLCBJbnN0cnVjdGlvbiogdlBDKTsKQEAgLTI5
MCw2ICsyOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHZvaWQqIG1f
anNBcnJheVZwdHI7CiAgICAgICAgIHZvaWQqIG1fanNTdHJpbmdWcHRyOworICAgICAgICB2b2lk
KiBtX2pzU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWRWcHRyOwogICAgICAg
ICB2b2lkKiBtX2pzRnVuY3Rpb25WcHRyOwogCiAjaWYgSEFWRShDT01QVVRFRF9HT1RPKQpJbmRl
eDogSmF2YVNjcmlwdENvcmUva2pzL0pTV3JhcHBlck9iamVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL2tqcy9KU1dyYXBwZXJPYmplY3QuaAkocmV2aXNpb24gMzY0NDcpCisrKyBK
YXZhU2NyaXB0Q29yZS9ranMvSlNXcmFwcGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDYgKzM0LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICovIAogICAgIGNsYXNzIEpTV3JhcHBl
ck9iamVjdCA6IHB1YmxpYyBKU09iamVjdCB7CiAgICAgcHVibGljOgorCisgICAgICAgIGVudW0g
VlB0clN0ZWFsaW5nSGFja1R5cGUgeyBWUHRyU3RlYWxpbmdIYWNrIH07CisgICAgICAgIEpTV3Jh
cHBlck9iamVjdChWUHRyU3RlYWxpbmdIYWNrVHlwZSkKKyAgICAgICAgICAgIDogSlNPYmplY3Qo
U3RydWN0dXJlSUQ6OmNyZWF0ZShqc051bGwoKSkpCisgICAgICAgIHsKKyAgICAgICAgfQorCiAg
ICAgICAgIEpTV3JhcHBlck9iamVjdChKU09iamVjdCogcHJvdG90eXBlKTsKICAgICAgICAgCiAg
ICAgICAgIEpTVmFsdWUqIGludGVybmFsVmFsdWUoKSBjb25zdDsKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2tqcy9TdHJpbmdPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMv
U3RyaW5nT2JqZWN0LmgJKHJldmlzaW9uIDM2NDQ3KQorKysgSmF2YVNjcmlwdENvcmUva2pzL1N0
cmluZ09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgIGNsYXNzIFN0cmluZ09iamVjdCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3Qg
ewogICAgIHB1YmxpYzoKKyAgICAgICAgU3RyaW5nT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBl
IHR5cGUpCisgICAgICAgICAgICA6IEpTV3JhcHBlck9iamVjdCh0eXBlKQorICAgICAgICB7Cisg
ICAgICAgIH0KICAgICAgICAgU3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBwcm90
b3R5cGUpOwogICAgICAgICBTdHJpbmdPYmplY3QoRXhlY1N0YXRlKiwgSlNPYmplY3QqIHByb3Rv
dHlwZSwgY29uc3QgVVN0cmluZyYpOwogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvU3RyaW5n
T2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9ranMvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaAkocmV2
aXNpb24gMzY0NDcpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvU3RyaW5nT2JqZWN0VGhhdE1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTAgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgLy8gV2ViQ29yZSB1c2VzIHRoaXMgdG8gbWFrZSBzdHlsZS5maWx0
ZXIgdW5kZXRlY3RhYmxlCiAgICAgY2xhc3MgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNV
bmRlZmluZWQgOiBwdWJsaWMgU3RyaW5nT2JqZWN0IHsKICAgICBwdWJsaWM6CisgICAgICAgIFN0
cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKFZQdHJTdGVhbGluZ0hhY2tUeXBl
IHR5cGUpCisgICAgICAgICAgICA6IFN0cmluZ09iamVjdCh0eXBlKQorICAgICAgICB7CisgICAg
ICAgIH0KICAgICAgICAgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogcHJvdG90eXBlLCBjb25zdCBVU3RyaW5nJiBzdHJpbmcp
CiAgICAgICAgICAgICA6IFN0cmluZ09iamVjdChleGVjLCBwcm90b3R5cGUsIHN0cmluZykKICAg
ICAgICAgewo=
</data>
<flag name="review"
          id="10467"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>