<?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>68294</bug_id>
          
          <creation_ts>2011-09-16 17:11:43 -0700</creation_ts>
          <short_desc>method_check should repatch itself if it finds that the new structure(s) are the result of transitions from the old structure(s)</short_desc>
          <delta_ts>2011-09-17 16:32:41 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>468911</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-16 17:11:43 -0700</bug_when>
    <thetext>The method_check optimization in the old JIT is now relied upon as a kind of profiling by the DFG JIT.  But this fails if the method_check takes the slow path simply because the structures it was caching on were transitioned.  This results in missed dead code elimination and inlining opportunities in the DFG.

The old JIT should simply repatch the fast path of method_check if it finds that the slow path was taken only because of structure transitions, but that the specific function optimization for that property is otherwise intact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468916</commentid>
    <comment_count>1</comment_count>
      <attachid>107749</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-16 17:15:46 -0700</bug_when>
    <thetext>Created attachment 107749
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468918</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-16 17:18:40 -0700</bug_when>
    <thetext>Attachment 107749 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/jit/JITStubs.cpp:1634:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/JavaScriptCore/jit/JITStubs.cpp:1644:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/JavaScriptCore/jit/JITStubs.cpp:1645:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/JavaScriptCore/jit/JITStubs.cpp:1646:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 4 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468928</commentid>
    <comment_count>3</comment_count>
      <attachid>107751</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-16 17:34:33 -0700</bug_when>
    <thetext>Created attachment 107751
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469113</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-17 16:32:41 -0700</bug_when>
    <thetext>Landed in r95388.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107749</attachid>
            <date>2011-09-16 17:15:46 -0700</date>
            <delta_ts>2011-09-16 17:34:33 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixmethodcheck_patch_1.diff</filename>
            <type>text/plain</type>
            <size>9416</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTUzMzcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTEtMDktMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBt
ZXRob2RfY2hlY2sgc2hvdWxkIHJlcGF0Y2ggaXRzZWxmIGlmIGl0IGZpbmRzIHRoYXQgdGhlIG5l
dyBzdHJ1Y3R1cmUocykKKyAgICAgICAgYXJlIHRoZSByZXN1bHQgb2YgdHJhbnNpdGlvbnMgZnJv
bSB0aGUgb2xkIHN0cnVjdHVyZShzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjgyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIFByZXZpb3VzbHkgYSBwYXRjaGVkIG1ldGhvZF9jaGVjayB3
b3VsZCBzbG93LXBhdGggdG8gZ2V0X2J5X2lkLiBOb3cgaXQKKyAgICAgICAgc2xvdy1wYXRocyB0
byBtZXRob2RfY2hlY2tfdXBkYXRlLCB3aGljaCBhdHRlbXB0cyB0byBjb3JyZWN0IHRoZQorICAg
ICAgICBtZXRob2RfY2hlY2sgZHVlIHRvIHN0cnVjdHVyZSB0cmFuc2l0aW9ucyBiZWZvcmUgYmFp
bGluZyB0byBnZXRfYnlfaWQuCisKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKToKKyAgICAgICAgKiBq
aXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjp0cmFuc2l0aXZlbHlUcmFuc2l0aW9uZWRGcm9tKToK
KwogMjAxMS0wOS0xNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZWQgdW5kZXRlY3RhYmxlIHN0eWxlLmZpbHRlci4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCShyZXZpc2lvbiA5NTMz
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDUxLDcgKzEwNTEsNiBAQCB2b2lkIEpJVDo6cGF0Y2hNZXRob2RD
YWxsUHJvdG8oSlNHbG9iYWxECiB7CiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNv
ZGVCbG9jayk7CiAgICAgCi0gICAgQVNTRVJUKCFtZXRob2RDYWxsTGlua0luZm8uY2FjaGVkU3Ry
dWN0dXJlKTsKICAgICBDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHIgc3RydWN0dXJlTG9jYXRpb24g
PSBtZXRob2RDYWxsTGlua0luZm8uY2FjaGVkU3RydWN0dXJlLmxvY2F0aW9uKCk7CiAgICAgbWV0
aG9kQ2FsbExpbmtJbmZvLmNhY2hlZFN0cnVjdHVyZS5zZXQoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
TG9jYXRpb24sIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZSk7CiAgICAg
CkBAIC0xMDU5LDcgKzEwNTgsNyBAQCB2b2lkIEpJVDo6cGF0Y2hNZXRob2RDYWxsUHJvdG8oSlNH
bG9iYWxECiAgICAgbWV0aG9kQ2FsbExpbmtJbmZvLmNhY2hlZFByb3RvdHlwZVN0cnVjdHVyZS5z
ZXQoZ2xvYmFsRGF0YSwgc3RydWN0dXJlTG9jYXRpb24uZGF0YUxhYmVsUHRyQXRPZmZzZXQocGF0
Y2hPZmZzZXRNZXRob2RDaGVja1Byb3RvU3RydWN0KSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFi
bGUoKSwgcHJvdG90eXBlU3RydWN0dXJlKTsKICAgICBtZXRob2RDYWxsTGlua0luZm8uY2FjaGVk
UHJvdG90eXBlLnNldChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmVMb2NhdGlvbi5kYXRhTGFiZWxQdHJB
dE9mZnNldChwYXRjaE9mZnNldE1ldGhvZENoZWNrUHJvdG9PYmopLCBjb2RlQmxvY2stPm93bmVy
RXhlY3V0YWJsZSgpLCBwcm90byk7CiAgICAgbWV0aG9kQ2FsbExpbmtJbmZvLmNhY2hlZEZ1bmN0
aW9uLnNldChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmVMb2NhdGlvbi5kYXRhTGFiZWxQdHJBdE9mZnNl
dChwYXRjaE9mZnNldE1ldGhvZENoZWNrUHV0RnVuY3Rpb24pLCBjb2RlQmxvY2stPm93bmVyRXhl
Y3V0YWJsZSgpLCBjYWxsZWUpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5j
dGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0X2J5X2lkKSk7CisgICAg
cmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0
aW9uUHRyKGN0aV9vcF9nZXRfYnlfaWRfbWV0aG9kX2NoZWNrX3VwZGF0ZSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CShyZXZpc2lvbiA5NTMzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYwLDYgKzE1NjAsOTQgQEAgREVGSU5FX1NUVUJfRlVO
Q1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAorREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2dldF9i
eV9pZF9tZXRob2RfY2hlY2tfdXBkYXRlKQoreworICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShz
dGFja0ZyYW1lKTsKKworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxs
RnJhbWU7CisgICAgSWRlbnRpZmllciYgaWRlbnQgPSBzdGFja0ZyYW1lLmFyZ3NbMV0uaWRlbnRp
ZmllcigpOworCisgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNW
YWx1ZSgpOworICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBiYXNlVmFsdWUuZ2V0KGNhbGxGcmFtZSwgaWRlbnQsIHNsb3QpOworICAgIENIRUNL
X0ZPUl9FWENFUFRJT04oKTsKKworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gc3RhY2tGcmFt
ZS5jYWxsRnJhbWUtPmNvZGVCbG9jaygpOworICAgIE1ldGhvZENhbGxMaW5rSW5mbyYgbWV0aG9k
Q2FsbExpbmtJbmZvID0gY29kZUJsb2NrLT5nZXRNZXRob2RDYWxsTGlua0luZm8oU1RVQl9SRVRV
Uk5fQUREUkVTUyk7CisKKyAgICBBU1NFUlQobWV0aG9kQ2FsbExpbmtJbmZvLnNlZW5PbmNlKCkp
OworCisgICAgLy8gSWYgd2Ugc3VjY2Vzc2Z1bGx5IGdvdCBzb21ldGhpbmcsIHRoZW4gdGhlIGJh
c2UgZnJvbSB3aGljaCBpdCBpcyBiZWluZyBhY2Nlc3NlZCBtdXN0CisgICAgLy8gYmUgYW4gb2Jq
ZWN0LiAgKEFzc2VydGlvbiB0byBlbnN1cmUgYXNPYmplY3QoKSBjYWxsIGJlbG93IGlzIHNhZmUs
IHdoaWNoIGNvbWVzIGFmdGVyCisgICAgLy8gYW4gaXNDYWNoZWFibGUoKSBjaGNlY2suCisgICAg
QVNTRVJUKCFzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSB8fCBzbG90LnNsb3RCYXNlKCkuaXNPYmpl
Y3QoKSk7CisKKyAgICAvLyBDaGVjayB0aGF0OgorICAgIC8vICAgKiBXZSdyZSBkZWFsaW5nIHdp
dGggYSBKU0NlbGwsCisgICAgLy8gICAqIHRoZSBwcm9wZXJ0eSBpcyBjYWNoYWJsZSwKKyAgICAv
LyAgICogaXQncyBub3QgYSBkaWN0aW9uYXJ5CisgICAgLy8gICAqIHRoZXJlIGlzIGEgZnVuY3Rp
b24gY2FjaGVkLgorICAgIFN0cnVjdHVyZSogc3RydWN0dXJlOworICAgIEpTQ2VsbCogc3BlY2lm
aWM7CisgICAgSlNPYmplY3QqIHNsb3RCYXNlT2JqZWN0OworICAgIGlmICghKGJhc2VWYWx1ZS5p
c0NlbGwoKQorICAgICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGVWYWx1ZSgpCisgICAgICAgICAg
JiYgIShzdHJ1Y3R1cmUgPSBiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpKS0+aXNVbmNh
Y2hlYWJsZURpY3Rpb25hcnkoKQorICAgICAgICAgICYmIChzbG90QmFzZU9iamVjdCA9IGFzT2Jq
ZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5nZXRQcm9wZXJ0eVNwZWNpZmljVmFsdWUoY2FsbEZyYW1l
LCBpZGVudCwgc3BlY2lmaWMpCisgICAgICAgICAgJiYgc3BlY2lmaWMKKyAgICAgICAgICApCisg
ICAgICAgIHx8IChzbG90LnNsb3RCYXNlKCkgIT0gc3RydWN0dXJlLT5wcm90b3R5cGVGb3JMb29r
dXAoY2FsbEZyYW1lKQorICAgICAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpICE9IGJhc2VWYWx1
ZSkpIHsKKyAgICAgICAgLy8gUmV2ZXJ0IHRoZSBnZXRfYnlfaWQgb3AgYmFjayB0byBiZWluZyBh
IHJlZ3VsYXIgZ2V0X2J5X2lkIC0gYWxsb3cgaXQgdG8gY2FjaGUgbGlrZSBub3JtYWwsIGlmIGl0
IG5lZWRzIHRvLgorICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY29kZUJsb2Nr
LCBTVFVCX1JFVFVSTl9BRERSRVNTLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0X2J5X2lkKSk7Cisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICB9CisgICAgCisgICAg
Ly8gTm93IGNoZWNrIGlmIHRoZSBzaXR1YXRpb24gaGFzIGNoYW5nZWQgc3VmZmljaWVudGx5IHRo
YXQgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mCisgICAgLy8gZG9pbmcgbWV0aG9kX2NoZWNrIG9wdGlt
aXphdGlvbnMgZW50aXJlbHksIG9yIGlmIGl0IGNoYW5nZWQgb25seSBzbGlnaHRseSwgaW4KKyAg
ICAvLyB3aGljaCBjYXNlIHdlIGNhbiBqdXN0IHJlcGF0Y2guCisgICAgCisgICAgSlNWYWx1ZSBw
cm90byA9IHN0cnVjdHVyZS0+cHJvdG90eXBlRm9yTG9va3VwKGNhbGxGcmFtZSk7CisgICAgCisg
ICAgYm9vbCBwcmV2aW91c1dhc1Byb3RvID0gbWV0aG9kQ2FsbExpbmtJbmZvLmNhY2hlZFByb3Rv
dHlwZS5nZXQoKSAhPSBjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5tZXRob2RDYWxsRHVtbXko
KTsKKyAgICBib29sIGN1cnJlbnRJc1Byb3RvID0gc2xvdC5zbG90QmFzZSgpID09IHByb3RvOwor
ICAgIAorICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBhc09iamVjdChzcGVjaWZpYyk7CisgICAgCisg
ICAgaWYgKHByZXZpb3VzV2FzUHJvdG8gIT0gY3VycmVudElzUHJvdG8KKyAgICAgICAgfHwgIXN0
cnVjdHVyZS0+dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShtZXRob2RDYWxsTGlua0luZm8u
Y2FjaGVkU3RydWN0dXJlLmdldCgpKQorICAgICAgICB8fCAocHJldmlvdXNXYXNQcm90byAmJiAh
c2xvdEJhc2VPYmplY3QtPnN0cnVjdHVyZSgpLT50cmFuc2l0aXZlbHlUcmFuc2l0aW9uZWRGcm9t
KG1ldGhvZENhbGxMaW5rSW5mby5jYWNoZWRQcm90b3R5cGVTdHJ1Y3R1cmUuZ2V0KCkpKSkgewor
ICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY29kZUJsb2NrLCBTVFVCX1JFVFVS
Tl9BRERSRVNTLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0X2J5X2lkKSk7CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgLy8gSXQgbWFrZXMg
c2Vuc2UgdG8gc2ltcGx5IHJlcGF0Y2ggdGhlIG1ldGhvZF9jaGVjay4KKyAgICAKKyAgICAvLyBT
aW5jZSB3ZSdyZSBhY2Nlc3NpbmcgYSBwcm90b3R5cGUgaW4gYSBsb29wLCBpdCdzIGEgZ29vZCBi
ZXQgdGhhdCBpdAorICAgIC8vIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBhIGRpY3Rpb25hcnku
CisgICAgaWYgKHNsb3RCYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCisg
ICAgICAgIHNsb3RCYXNlT2JqZWN0LT5mbGF0dGVuRGljdGlvbmFyeU9iamVjdChjYWxsRnJhbWUt
Pmdsb2JhbERhdGEoKSk7CisgICAgCisgICAgLy8gVGhlIHJlc3VsdCBmZXRjaGVkIHNob3VsZCBh
bHdheXMgYmUgdGhlIGNhbGxlZSEKKyAgICBBU1NFUlQocmVzdWx0ID09IEpTVmFsdWUoY2FsbGVl
KSk7CisgICAgCisgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBmdW5jdGlvbiBpcyBvbiB0aGUg
b2JqZWN0J3MgcHJvdG90eXBlLiAgUGF0Y2ggdXAgdGhlIGNvZGUgdG8gb3B0aW1pemUuCisgICAg
aWYgKHNsb3Quc2xvdEJhc2UoKSA9PSBwcm90bykgeworICAgICAgICBKSVQ6OnBhdGNoTWV0aG9k
Q2FsbFByb3RvKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjb2RlQmxvY2ssIG1ldGhvZENhbGxM
aW5rSW5mbywgY2FsbGVlLCBzdHJ1Y3R1cmUsIHNsb3RCYXNlT2JqZWN0LCBTVFVCX1JFVFVSTl9B
RERSRVNTKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworICAgIH0K
KyAgICAKKyAgICBBU1NFUlQoc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZSk7CisgICAgCisg
ICAgLy8gU2luY2Ugd2UgZ2VuZXJhdGUgdGhlIG1ldGhvZC1jaGVjayB0byBjaGVjayBib3RoIHRo
ZSBzdHJ1Y3R1cmUgYW5kIGEgcHJvdG90eXBlLXN0cnVjdHVyZSAoc2luY2UgdGhpcworICAgIC8v
IGlzIHRoZSBjb21tb24gY2FzZSkgd2UgaGF2ZSBhIHByb2JsZW0gLSB3ZSBuZWVkIHRvIHBhdGNo
IHRoZSBwcm90b3R5cGUgc3RydWN0dXJlIGNoZWNrIHRvIGRvIHNvbWV0aGluZworICAgIC8vIHVz
ZWZ1bC4gIFdlIGNvdWxkIHRyeSB0byBub3AgaXQgb3V0IGFsdG9nZXRoZXIsIGJ1dCB0aGF0J3Mg
YSBsaXR0bGUgbWVzc3ksIHNvIGxldHMgZG8gc29tZXRoaW5nIHNpbXBsZXIKKyAgICAvLyBmb3Ig
bm93LiAgRm9yIG5vdyBpdCBwZXJmb3JtcyBhIGNoZWNrIG9uIGEgc3BlY2lhbCBvYmplY3Qgb24g
dGhlIGdsb2JhbCBvYmplY3Qgb25seSB1c2VkIGZvciB0aGlzCisgICAgLy8gcHVycG9zZS4gIFRo
ZSBvYmplY3QgaXMgaW4gbm8gd2F5IGV4cG9zZWQsIGFuZCBhcyBzdWNoIHRoZSBjaGVjayB3aWxs
IGFsd2F5cyBwYXNzLgorICAgIEpJVDo6cGF0Y2hNZXRob2RDYWxsUHJvdG8oY2FsbEZyYW1lLT5n
bG9iYWxEYXRhKCksIGNvZGVCbG9jaywgbWV0aG9kQ2FsbExpbmtJbmZvLCBjYWxsZWUsIHN0cnVj
dHVyZSwgY2FsbEZyYW1lLT5zY29wZUNoYWluKCktPmdsb2JhbE9iamVjdC0+bWV0aG9kQ2FsbER1
bW15KCksIFNUVUJfUkVUVVJOX0FERFJFU1MpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKK30KKwogREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2dl
dF9ieV9pZCkKIHsKICAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiA5NTMzNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzM0
LDYgKzMzNCw3IEBAIGV4dGVybiAiQyIgewogICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0
aV9vcF9nZXRfYnlfaWRfZ2VuZXJpYyhTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIEVuY29k
ZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfZ2V0dGVyX3N0dWIoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKTsKICAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5
X2lkX21ldGhvZF9jaGVjayhTVFVCX0FSR1NfREVDTEFSQVRJT04pOworICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfbWV0aG9kX2NoZWNrX3VwZGF0ZShTVFVCX0FS
R1NfREVDTEFSQVRJT04pOwogICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRf
YnlfaWRfcHJvdG9fZmFpbChTVFVCX0FSR1NfREVDTEFSQVRJT04pOwogICAgIEVuY29kZWRKU1Zh
bHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJvdG9fbGlzdChTVFVCX0FSR1NfREVDTEFS
QVRJT04pOwogICAgIEVuY29kZWRKU1ZhbHVlIEpJVF9TVFVCIGN0aV9vcF9nZXRfYnlfaWRfcHJv
dG9fbGlzdF9mdWxsKFNUVUJfQVJHU19ERUNMQVJBVElPTik7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gOTUzMzcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTMz
LDYgKzEzMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHZpc2l0Q2hpbGRyZW4o
U2xvdFZpc2l0b3ImKTsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHByZXZpb3VzSUQoKSBjb25zdCB7
IEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7IHJldHVybiBtX3By
ZXZpb3VzLmdldCgpOyB9CisgICAgICAgIGJvb2wgdHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJv
bShTdHJ1Y3R1cmUqIHN0cnVjdHVyZVRvRmluZCk7CiAKICAgICAgICAgdm9pZCBncm93UHJvcGVy
dHlTdG9yYWdlQ2FwYWNpdHkoKTsKICAgICAgICAgdW5zaWduZWQgcHJvcGVydHlTdG9yYWdlQ2Fw
YWNpdHkoKSBjb25zdCB7IEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5m
byk7IHJldHVybiBtX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5OyB9CkBAIC0zNTIsNiArMzUzLDE1
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gSGFzaDo6S2V5KHN0cnVjdHVyZS0+
bV9uYW1lSW5QcmV2aW91cy5nZXQoKSwgK3N0cnVjdHVyZS0+bV9hdHRyaWJ1dGVzSW5QcmV2aW91
cyk7CiAgICAgfQogCisgICAgaW5saW5lIGJvb2wgU3RydWN0dXJlOjp0cmFuc2l0aXZlbHlUcmFu
c2l0aW9uZWRGcm9tKFN0cnVjdHVyZSogc3RydWN0dXJlVG9GaW5kKQorICAgIHsKKyAgICAgICAg
Zm9yIChTdHJ1Y3R1cmUqIGN1cnJlbnQgPSB0aGlzOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVu
dC0+cHJldmlvdXNJRCgpKSB7CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBzdHJ1Y3R1cmVU
b0ZpbmQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBT
dHJ1Y3R1cmVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107751</attachid>
            <date>2011-09-16 17:34:33 -0700</date>
            <delta_ts>2011-09-16 17:55:32 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixmethodcheck_patch_2.diff</filename>
            <type>text/plain</type>
            <size>9630</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTUzMzcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDktMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBt
ZXRob2RfY2hlY2sgc2hvdWxkIHJlcGF0Y2ggaXRzZWxmIGlmIGl0IGZpbmRzIHRoYXQgdGhlIG5l
dyBzdHJ1Y3R1cmUocykKKyAgICAgICAgYXJlIHRoZSByZXN1bHQgb2YgdHJhbnNpdGlvbnMgZnJv
bSB0aGUgb2xkIHN0cnVjdHVyZShzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjgyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIFByZXZpb3VzbHkgYSBwYXRjaGVkIG1ldGhvZF9jaGVjayB3
b3VsZCBzbG93LXBhdGggdG8gZ2V0X2J5X2lkLiBOb3cgaXQKKyAgICAgICAgc2xvdy1wYXRocyB0
byBtZXRob2RfY2hlY2tfdXBkYXRlLCB3aGljaCBhdHRlbXB0cyB0byBjb3JyZWN0IHRoZQorICAg
ICAgICBtZXRob2RfY2hlY2sgZHVlIHRvIHN0cnVjdHVyZSB0cmFuc2l0aW9ucyBiZWZvcmUgYmFp
bGluZyB0byBnZXRfYnlfaWQuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgMS0yJSBzcGVl
ZC11cCBvbiBzb21lIGJlbmNobWFya3MgYW5kIGlzIG5vdCBhIHNsb3ctZG93bgorICAgICAgICBh
bnl3aGVyZSwgbGVhZGluZyB0byBhIDAuNiUgc3BlZWQtdXAgb24gdGhlIEtyYWtlbiBnZW9tZWFu
LgorCisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjpwYXRjaE1ldGhvZENhbGxQcm90byk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoK
KyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAqIGppdC9KSVRT
dHVicy5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbSk6CisKIDIwMTEtMDktMTYgIEdl
b2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmVkIHVuZGV0
ZWN0YWJsZSBzdHlsZS5maWx0ZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNpb24gOTUzMzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA1MSw3ICsxMDUxLDYgQEAgdm9pZCBKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKEpTR2xvYmFs
RAogewogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2spOwogICAgIAot
ICAgIEFTU0VSVCghbWV0aG9kQ2FsbExpbmtJbmZvLmNhY2hlZFN0cnVjdHVyZSk7CiAgICAgQ29k
ZUxvY2F0aW9uRGF0YUxhYmVsUHRyIHN0cnVjdHVyZUxvY2F0aW9uID0gbWV0aG9kQ2FsbExpbmtJ
bmZvLmNhY2hlZFN0cnVjdHVyZS5sb2NhdGlvbigpOwogICAgIG1ldGhvZENhbGxMaW5rSW5mby5j
YWNoZWRTdHJ1Y3R1cmUuc2V0KGdsb2JhbERhdGEsIHN0cnVjdHVyZUxvY2F0aW9uLCBjb2RlQmxv
Y2stPm93bmVyRXhlY3V0YWJsZSgpLCBzdHJ1Y3R1cmUpOwogICAgIApAQCAtMTA1OSw3ICsxMDU4
LDcgQEAgdm9pZCBKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKEpTR2xvYmFsRAogICAgIG1ldGhv
ZENhbGxMaW5rSW5mby5jYWNoZWRQcm90b3R5cGVTdHJ1Y3R1cmUuc2V0KGdsb2JhbERhdGEsIHN0
cnVjdHVyZUxvY2F0aW9uLmRhdGFMYWJlbFB0ckF0T2Zmc2V0KHBhdGNoT2Zmc2V0TWV0aG9kQ2hl
Y2tQcm90b1N0cnVjdCksIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHByb3RvdHlwZVN0
cnVjdHVyZSk7CiAgICAgbWV0aG9kQ2FsbExpbmtJbmZvLmNhY2hlZFByb3RvdHlwZS5zZXQoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlTG9jYXRpb24uZGF0YUxhYmVsUHRyQXRPZmZzZXQocGF0Y2hPZmZz
ZXRNZXRob2RDaGVja1Byb3RvT2JqKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgcHJv
dG8pOwogICAgIG1ldGhvZENhbGxMaW5rSW5mby5jYWNoZWRGdW5jdGlvbi5zZXQoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlTG9jYXRpb24uZGF0YUxhYmVsUHRyQXRPZmZzZXQocGF0Y2hPZmZzZXRNZXRo
b2RDaGVja1B1dEZ1bmN0aW9uKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVl
KTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVz
cywgRnVuY3Rpb25QdHIoY3RpX29wX2dldF9ieV9pZCkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVs
aW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0
X2J5X2lkX21ldGhvZF9jaGVja191cGRhdGUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gOTUzMzcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU2MCw2ICsxNTYwLDk1IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1Zh
bHVlLCBvcF8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKK0RFRklO
RV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9nZXRfYnlfaWRfbWV0aG9kX2NoZWNr
X3VwZGF0ZSkKK3sKKyAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CisKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHN0YWNrRnJhbWUuY2FsbEZyYW1lOworICAgIElkZW50
aWZpZXImIGlkZW50ID0gc3RhY2tGcmFtZS5hcmdzWzFdLmlkZW50aWZpZXIoKTsKKworICAgIEpT
VmFsdWUgYmFzZVZhbHVlID0gc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKTsKKyAgICBQcm9w
ZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZhbHVl
LmdldChjYWxsRnJhbWUsIGlkZW50LCBzbG90KTsKKyAgICBDSEVDS19GT1JfRVhDRVBUSU9OKCk7
CisKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKTsKKyAgICBNZXRob2RDYWxsTGlua0luZm8mIG1ldGhvZENhbGxMaW5rSW5mbyA9IGNv
ZGVCbG9jay0+Z2V0TWV0aG9kQ2FsbExpbmtJbmZvKFNUVUJfUkVUVVJOX0FERFJFU1MpOworCisg
ICAgQVNTRVJUKG1ldGhvZENhbGxMaW5rSW5mby5zZWVuT25jZSgpKTsKKworICAgIC8vIElmIHdl
IHN1Y2Nlc3NmdWxseSBnb3Qgc29tZXRoaW5nLCB0aGVuIHRoZSBiYXNlIGZyb20gd2hpY2ggaXQg
aXMgYmVpbmcgYWNjZXNzZWQgbXVzdAorICAgIC8vIGJlIGFuIG9iamVjdC4gIChBc3NlcnRpb24g
dG8gZW5zdXJlIGFzT2JqZWN0KCkgY2FsbCBiZWxvdyBpcyBzYWZlLCB3aGljaCBjb21lcyBhZnRl
cgorICAgIC8vIGFuIGlzQ2FjaGVhYmxlKCkgY2hjZWNrLgorICAgIEFTU0VSVCghc2xvdC5pc0Nh
Y2hlYWJsZVZhbHVlKCkgfHwgc2xvdC5zbG90QmFzZSgpLmlzT2JqZWN0KCkpOworCisgICAgLy8g
Q2hlY2sgdGhhdDoKKyAgICAvLyAgICogV2UncmUgZGVhbGluZyB3aXRoIGEgSlNDZWxsLAorICAg
IC8vICAgKiB0aGUgcHJvcGVydHkgaXMgY2FjaGFibGUsCisgICAgLy8gICAqIGl0J3Mgbm90IGEg
ZGljdGlvbmFyeQorICAgIC8vICAgKiB0aGVyZSBpcyBhIGZ1bmN0aW9uIGNhY2hlZC4KKyAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZTsKKyAgICBKU0NlbGwqIHNwZWNpZmljOworICAgIEpTT2JqZWN0
KiBzbG90QmFzZU9iamVjdDsKKyAgICBpZiAoIShiYXNlVmFsdWUuaXNDZWxsKCkKKyAgICAgICAg
ICAmJiBzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKQorICAgICAgICAgICYmICEoc3RydWN0dXJlID0g
YmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKSktPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5
KCkKKyAgICAgICAgICAmJiAoc2xvdEJhc2VPYmplY3QgPSBhc09iamVjdChzbG90LnNsb3RCYXNl
KCkpKS0+Z2V0UHJvcGVydHlTcGVjaWZpY1ZhbHVlKGNhbGxGcmFtZSwgaWRlbnQsIHNwZWNpZmlj
KQorICAgICAgICAgICYmIHNwZWNpZmljCisgICAgICAgICAgKQorICAgICAgICB8fCAoc2xvdC5z
bG90QmFzZSgpICE9IHN0cnVjdHVyZS0+cHJvdG90eXBlRm9yTG9va3VwKGNhbGxGcmFtZSkKKyAg
ICAgICAgICAgICYmIHNsb3Quc2xvdEJhc2UoKSAhPSBiYXNlVmFsdWUpKSB7CisgICAgICAgIC8v
IFJldmVydCB0aGUgZ2V0X2J5X2lkIG9wIGJhY2sgdG8gYmVpbmcgYSByZWd1bGFyIGdldF9ieV9p
ZCAtIGFsbG93IGl0IHRvIGNhY2hlIGxpa2Ugbm9ybWFsLCBpZiBpdCBuZWVkcyB0by4KKyAgICAg
ICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQURE
UkVTUywgRnVuY3Rpb25QdHIoY3RpX29wX2dldF9ieV9pZCkpOworICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIC8vIE5vdyBjaGVjayBpZiB0
aGUgc2l0dWF0aW9uIGhhcyBjaGFuZ2VkIHN1ZmZpY2llbnRseSB0aGF0IHdlIHNob3VsZCBiYWls
IG91dCBvZgorICAgIC8vIGRvaW5nIG1ldGhvZF9jaGVjayBvcHRpbWl6YXRpb25zIGVudGlyZWx5
LCBvciBpZiBpdCBjaGFuZ2VkIG9ubHkgc2xpZ2h0bHksIGluCisgICAgLy8gd2hpY2ggY2FzZSB3
ZSBjYW4ganVzdCByZXBhdGNoLgorICAgIAorICAgIEpTVmFsdWUgcHJvdG8gPSBzdHJ1Y3R1cmUt
PnByb3RvdHlwZUZvckxvb2t1cChjYWxsRnJhbWUpOworICAgIAorICAgIGJvb2wgcHJldmlvdXNX
YXNQcm90byA9IG1ldGhvZENhbGxMaW5rSW5mby5jYWNoZWRQcm90b3R5cGUuZ2V0KCkgIT0gY29k
ZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+bWV0aG9kQ2FsbER1bW15KCk7CisgICAgYm9vbCBjdXJy
ZW50SXNQcm90byA9IHNsb3Quc2xvdEJhc2UoKSA9PSBwcm90bzsKKyAgICAKKyAgICBKU09iamVj
dCogY2FsbGVlID0gYXNPYmplY3Qoc3BlY2lmaWMpOworICAgIAorICAgIGlmIChwcmV2aW91c1dh
c1Byb3RvICE9IGN1cnJlbnRJc1Byb3RvCisgICAgICAgIHx8ICFzdHJ1Y3R1cmUtPnRyYW5zaXRp
dmVseVRyYW5zaXRpb25lZEZyb20obWV0aG9kQ2FsbExpbmtJbmZvLmNhY2hlZFN0cnVjdHVyZS5n
ZXQoKSkKKyAgICAgICAgfHwgKHByZXZpb3VzV2FzUHJvdG8gJiYgIXNsb3RCYXNlT2JqZWN0LT5z
dHJ1Y3R1cmUoKS0+dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShtZXRob2RDYWxsTGlua0lu
Zm8uY2FjaGVkUHJvdG90eXBlU3RydWN0dXJlLmdldCgpKSkKKyAgICAgICAgfHwgc3BlY2lmaWMg
IT0gbWV0aG9kQ2FsbExpbmtJbmZvLmNhY2hlZEZ1bmN0aW9uLmdldCgpKSB7CisgICAgICAgIGN0
aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJFU1Ms
IEZ1bmN0aW9uUHRyKGN0aV9vcF9nZXRfYnlfaWQpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOworICAgIH0KKyAgICAKKyAgICAvLyBJdCBtYWtlcyBzZW5zZSB0byBz
aW1wbHkgcmVwYXRjaCB0aGUgbWV0aG9kX2NoZWNrLgorICAgIAorICAgIC8vIFNpbmNlIHdlJ3Jl
IGFjY2Vzc2luZyBhIHByb3RvdHlwZSBpbiBhIGxvb3AsIGl0J3MgYSBnb29kIGJldCB0aGF0IGl0
CisgICAgLy8gc2hvdWxkIG5vdCBiZSB0cmVhdGVkIGFzIGEgZGljdGlvbmFyeS4KKyAgICBpZiAo
c2xvdEJhc2VPYmplY3QtPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgc2xv
dEJhc2VPYmplY3QtPmZsYXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0
YSgpKTsKKyAgICAKKyAgICAvLyBUaGUgcmVzdWx0IGZldGNoZWQgc2hvdWxkIGFsd2F5cyBiZSB0
aGUgY2FsbGVlIQorICAgIEFTU0VSVChyZXN1bHQgPT0gSlNWYWx1ZShjYWxsZWUpKTsKKyAgICAK
KyAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIGZ1bmN0aW9uIGlzIG9uIHRoZSBvYmplY3QncyBw
cm90b3R5cGUuIFBhdGNoIHVwIHRoZSBjb2RlIHRvIG9wdGltaXplLgorICAgIGlmIChzbG90LnNs
b3RCYXNlKCkgPT0gcHJvdG8pIHsKKyAgICAgICAgSklUOjpwYXRjaE1ldGhvZENhbGxQcm90byhj
YWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgY29kZUJsb2NrLCBtZXRob2RDYWxsTGlua0luZm8sIGNh
bGxlZSwgc3RydWN0dXJlLCBzbG90QmFzZU9iamVjdCwgU1RVQl9SRVRVUk5fQUREUkVTUyk7Cisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICB9CisgICAgCisgICAg
QVNTRVJUKHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUpOworICAgIAorICAgIC8vIFNpbmNl
IHdlIGdlbmVyYXRlIHRoZSBtZXRob2QtY2hlY2sgdG8gY2hlY2sgYm90aCB0aGUgc3RydWN0dXJl
IGFuZCBhIHByb3RvdHlwZS1zdHJ1Y3R1cmUgKHNpbmNlIHRoaXMKKyAgICAvLyBpcyB0aGUgY29t
bW9uIGNhc2UpIHdlIGhhdmUgYSBwcm9ibGVtIC0gd2UgbmVlZCB0byBwYXRjaCB0aGUgcHJvdG90
eXBlIHN0cnVjdHVyZSBjaGVjayB0byBkbyBzb21ldGhpbmcKKyAgICAvLyB1c2VmdWwuIFdlIGNv
dWxkIHRyeSB0byBub3AgaXQgb3V0IGFsdG9nZXRoZXIsIGJ1dCB0aGF0J3MgYSBsaXR0bGUgbWVz
c3ksIHNvIGxldHMgZG8gc29tZXRoaW5nIHNpbXBsZXIKKyAgICAvLyBmb3Igbm93LiBGb3Igbm93
IGl0IHBlcmZvcm1zIGEgY2hlY2sgb24gYSBzcGVjaWFsIG9iamVjdCBvbiB0aGUgZ2xvYmFsIG9i
amVjdCBvbmx5IHVzZWQgZm9yIHRoaXMKKyAgICAvLyBwdXJwb3NlLiBUaGUgb2JqZWN0IGlzIGlu
IG5vIHdheSBleHBvc2VkLCBhbmQgYXMgc3VjaCB0aGUgY2hlY2sgd2lsbCBhbHdheXMgcGFzcy4K
KyAgICBKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBj
b2RlQmxvY2ssIG1ldGhvZENhbGxMaW5rSW5mbywgY2FsbGVlLCBzdHJ1Y3R1cmUsIGNhbGxGcmFt
ZS0+c2NvcGVDaGFpbigpLT5nbG9iYWxPYmplY3QtPm1ldGhvZENhbGxEdW1teSgpLCBTVFVCX1JF
VFVSTl9BRERSRVNTKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisK
IERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9nZXRfYnlfaWQpCiB7CiAg
ICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gOTUzMzcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw2ICszMzQsNyBAQCBl
eHRlcm4gIkMiIHsKICAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lk
X2dlbmVyaWMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICBFbmNvZGVkSlNWYWx1ZSBKSVRf
U1RVQiBjdGlfb3BfZ2V0X2J5X2lkX2dldHRlcl9zdHViKFNUVUJfQVJHU19ERUNMQVJBVElPTik7
CiAgICAgRW5jb2RlZEpTVmFsdWUgSklUX1NUVUIgY3RpX29wX2dldF9ieV9pZF9tZXRob2RfY2hl
Y2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX21ldGhvZF9jaGVja191cGRhdGUoU1RVQl9BUkdTX0RFQ0xBUkFUSU9O
KTsKICAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2Zh
aWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBj
dGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3QoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKTsKICAgICBF
bmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X2lkX3Byb3RvX2xpc3RfZnVsbChT
VFVCX0FSR1NfREVDTEFSQVRJT04pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDk1MzM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJik7
CiAKICAgICAgICAgU3RydWN0dXJlKiBwcmV2aW91c0lEKCkgY29uc3QgeyBBU1NFUlQoc3RydWN0
dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsg
fQorICAgICAgICBib29sIHRyYW5zaXRpdmVseVRyYW5zaXRpb25lZEZyb20oU3RydWN0dXJlKiBz
dHJ1Y3R1cmVUb0ZpbmQpOwogCiAgICAgICAgIHZvaWQgZ3Jvd1Byb3BlcnR5U3RvcmFnZUNhcGFj
aXR5KCk7CiAgICAgICAgIHVuc2lnbmVkIHByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkgY29uc3Qg
eyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1cm4gbV9w
cm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eTsgfQpAQCAtMzUyLDYgKzM1MywxNSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgcmV0dXJuIEhhc2g6OktleShzdHJ1Y3R1cmUtPm1fbmFtZUluUHJldmlv
dXMuZ2V0KCksICtzdHJ1Y3R1cmUtPm1fYXR0cmlidXRlc0luUHJldmlvdXMpOwogICAgIH0KIAor
ICAgIGlubGluZSBib29sIFN0cnVjdHVyZTo6dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShT
dHJ1Y3R1cmUqIHN0cnVjdHVyZVRvRmluZCkKKyAgICB7CisgICAgICAgIGZvciAoU3RydWN0dXJl
KiBjdXJyZW50ID0gdGhpczsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnByZXZpb3VzSUQo
KSkgeworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gc3RydWN0dXJlVG9GaW5kKQorICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gU3RydWN0dXJlX2gK
</data>
<flag name="review"
          id="104522"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>