<?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>63662</bug_id>
          
          <creation_ts>2011-06-29 15:14:35 -0700</creation_ts>
          <short_desc>DFG JIT does not do put_by_id transition caching.</short_desc>
          <delta_ts>2011-06-29 16:45:45 -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>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>429921</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-29 15:14:35 -0700</bug_when>
    <thetext>The baseline JIT emits a stub specialized for put_by_id transitions (i.e. setting a property that did not previous exist in the object, thereby resulting in a structure transition).  The DFG JIT emits a slow C call.  The DFG JIT should really be emitting an optimized stub, like the baseline JIT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429932</commentid>
    <comment_count>1</comment_count>
      <attachid>99161</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-29 15:37:33 -0700</bug_when>
    <thetext>Created attachment 99161
the patch

This patch takes us from a 20% slow-down in v8-raytrace to a 4% speed-up on v8-raytrace.  We no longer have large regressions on any v8 benchmark (all v8 benchmarks are now speed-ups, no effect, or &lt;5% slowdowns).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429984</commentid>
    <comment_count>2</comment_count>
      <attachid>99161</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-29 16:45:40 -0700</bug_when>
    <thetext>Comment on attachment 99161
the patch

Clearing flags on attachment: 99161

Committed r90063: &lt;http://trac.webkit.org/changeset/90063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429985</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-29 16:45:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99161</attachid>
            <date>2011-06-29 15:37:33 -0700</date>
            <delta_ts>2011-06-29 16:45:40 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>puttransition_patch_1.diff</filename>
            <type>text/plain</type>
            <size>11184</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTAwNTUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTEtMDYtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBERkcgSklUIGRvZXMgbm90IGRv
IHB1dF9ieV9pZCB0cmFuc2l0aW9uIGNhY2hpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY2MgorCisgICAgICAgICogZGZnL0RGR0pJVENvZGVH
ZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OmNhY2hl
ZFB1dEJ5SWQpOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAoSlND
OjpERkc6OkpJVENvbXBpbGVyOjphZGRQcm9wZXJ0eUFjY2Vzcyk6CisgICAgICAgICogZGZnL0RG
R1JlcGF0Y2guY3BwOgorICAgICAgICAoSlNDOjpERkc6OnRlc3RQcm90b3R5cGUpOgorICAgICAg
ICAoSlNDOjpERkc6OnRyeUNhY2hlUHV0QnlJRCk6CisKIDIwMTEtMDYtMjkgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNs
b3VnaC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2Rl
R2VuZXJhdG9yLmNwcAkocmV2aXNpb24gOTAwNTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzAsMTIgKzM3
MCwyNiBAQCB2b2lkIEpJVENvZGVHZW5lcmF0b3I6OmNhY2hlZEdldEJ5SWQoR1BSCiAKIHZvaWQg
SklUQ29kZUdlbmVyYXRvcjo6Y2FjaGVkUHV0QnlJZChHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHZh
bHVlR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0
S2luZCBwdXRLaW5kLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkKIHsKKyAgICBH
UFJSZWcgc2xvd1BhdGhTY3JhdGNoID0gc2NyYXRjaEdQUjsKKyAgICAKKyAgICBpZiAoc2NyYXRj
aEdQUiA9PSBiYXNlR1BSKQorICAgICAgICBzbG93UGF0aFNjcmF0Y2ggPSB0cnlBbGxvY2F0ZSgp
OworICAgIAogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgc3RydWN0dXJlVG9Db21wYXJl
OwotICAgIEpJVENvbXBpbGVyOjpKdW1wIHN0cnVjdHVyZUNoZWNrID0gbV9qaXQuYnJhbmNoUHRy
V2l0aFBhdGNoKEpJVENvbXBpbGVyOjpFcXVhbCwgSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQ
UiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZVRvQ29tcGFyZSwgSklUQ29t
cGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oLTEpKSk7CisgICAg
SklUQ29tcGlsZXI6Okp1bXAgc3RydWN0dXJlQ2hlY2sgPSBtX2ppdC5icmFuY2hQdHJXaXRoUGF0
Y2goSklUQ29tcGlsZXI6Ok5vdEVxdWFsLCBKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBK
U0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc3RydWN0dXJlVG9Db21wYXJlLCBKSVRDb21waWxl
cjo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPigtMSkpKTsKICAgICAKKyAg
ICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTT2JqZWN0Ojpv
ZmZzZXRPZlByb3BlcnR5U3RvcmFnZSgpKSwgc2NyYXRjaEdQUik7CisgICAgSklUQ29tcGlsZXI6
OkRhdGFMYWJlbDMyIHN0b3JlV2l0aFBhdGNoID0gbV9qaXQuc3RvcmVQdHJXaXRoQWRkcmVzc09m
ZnNldFBhdGNoKHZhbHVlR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhzY3JhdGNoR1BSLCAwKSk7
CisKKyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworCisgICAgc3Ry
dWN0dXJlQ2hlY2subGluaygmbV9qaXQpOworCiAgICAgaWYgKHNsb3dQYXRoVGFyZ2V0LmlzU2V0
KCkpCiAgICAgICAgIHNsb3dQYXRoVGFyZ2V0LmxpbmsoJm1faml0KTsKIAorICAgIEpJVENvbXBp
bGVyOjpMYWJlbCBzbG93Q2FzZSA9IG1faml0LmxhYmVsKCk7CisKICAgICBzaWxlbnRTcGlsbEFs
bFJlZ2lzdGVycyhJbnZhbGlkR1BSUmVnLCBiYXNlR1BSLCB2YWx1ZUdQUik7CiAgICAgc2V0dXBU
d29TdHViQXJnczxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMj4o
dmFsdWVHUFIsIGJhc2VHUFIpOwogICAgIG1faml0Lm1vdmUoSklUQ29tcGlsZXI6OkltbVB0cihp
ZGVudGlmaWVyKGlkZW50aWZpZXJOdW1iZXIpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKQEAg
LTM5NSwxOSArNDA5LDE5IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6Y2FjaGVkUHV0QnlJZChH
UFIKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wdGltaXplZENhbGwpOwogICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMo
SW52YWxpZEdQUlJlZyk7CiAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBoYW5kbGVkQnlDID0gbV9q
aXQuanVtcCgpOwotICAgIHN0cnVjdHVyZUNoZWNrLmxpbmsoJm1faml0KTsKLQotICAgIG1faml0
LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNPYmplY3Q6Om9mZnNldE9m
UHJvcGVydHlTdG9yYWdlKCkpLCBzY3JhdGNoR1BSKTsKLSAgICBKSVRDb21waWxlcjo6RGF0YUxh
YmVsMzIgc3RvcmVXaXRoUGF0Y2ggPSBtX2ppdC5zdG9yZVB0cldpdGhBZGRyZXNzT2Zmc2V0UGF0
Y2godmFsdWVHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIDApKTsKKyAgICBk
b25lLmxpbmsoJm1faml0KTsKKyAgICBKSVRDb21waWxlcjo6TGFiZWwgZG9uZUxhYmVsID0gbV9q
aXQubGFiZWwoKTsKIAogICAgIGludDhfdCBjaGVja0ltbVRvQ2FsbCA9IHN0YXRpY19jYXN0PGlu
dDhfdD4obV9qaXQuZGlmZmVyZW5jZUJldHdlZW4oc3RydWN0dXJlVG9Db21wYXJlLCBmdW5jdGlv
bkNhbGwpKTsKICAgICBpbnQ4X3QgY2FsbFRvQ2hlY2sgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KG1f
aml0LmRpZmZlcmVuY2VCZXR3ZWVuKGZ1bmN0aW9uQ2FsbCwgc3RydWN0dXJlQ2hlY2spKTsKICAg
ICBpbnQ4X3QgY2FsbFRvU3RvcmUgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KG1faml0LmRpZmZlcmVu
Y2VCZXR3ZWVuKGZ1bmN0aW9uQ2FsbCwgc3RvcmVXaXRoUGF0Y2gpKTsKKyAgICBpbnQ4X3QgY2Fs
bFRvU2xvd0Nhc2UgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KG1faml0LmRpZmZlcmVuY2VCZXR3ZWVu
KGZ1bmN0aW9uQ2FsbCwgc2xvd0Nhc2UpKTsKKyAgICBpbnQ4X3QgY2FsbFRvRG9uZSA9IHN0YXRp
Y19jYXN0PGludDhfdD4obV9qaXQuZGlmZmVyZW5jZUJldHdlZW4oZnVuY3Rpb25DYWxsLCBkb25l
TGFiZWwpKTsKIAotICAgIGhhbmRsZWRCeUMubGluaygmbV9qaXQpOworICAgIG1faml0LmFkZFBy
b3BlcnR5QWNjZXNzKGZ1bmN0aW9uQ2FsbCwgY2hlY2tJbW1Ub0NhbGwsIGNhbGxUb0NoZWNrLCBj
YWxsVG9TdG9yZSwgY2FsbFRvU2xvd0Nhc2UsIGNhbGxUb0RvbmUsIHN0YXRpY19jYXN0PGludDhf
dD4oYmFzZUdQUiksIHN0YXRpY19jYXN0PGludDhfdD4odmFsdWVHUFIpLCBzdGF0aWNfY2FzdDxp
bnQ4X3Q+KHNsb3dQYXRoU2NyYXRjaCkpOwogCi0gICAgbV9qaXQuYWRkUHJvcGVydHlBY2Nlc3Mo
ZnVuY3Rpb25DYWxsLCBjaGVja0ltbVRvQ2FsbCwgY2FsbFRvQ2hlY2ssIGNhbGxUb1N0b3JlKTsK
KyAgICBpZiAoc2NyYXRjaEdQUiA9PSBiYXNlR1BSICYmIHNsb3dQYXRoU2NyYXRjaCAhPSBJbnZh
bGlkR1BSUmVnKQorICAgICAgICB1bmxvY2soc2xvd1BhdGhTY3JhdGNoKTsKIH0KIAogI2lmbmRl
ZiBOREVCVUcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmgJKHJldmlzaW9uIDkwMDUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzMsNyArMjMzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgY2xlYXJTYW1wbGluZ0ZsYWcoaW50MzJfdCBmbGFnKTsKICNlbmRpZgogCi0gICAgdm9p
ZCBhZGRQcm9wZXJ0eUFjY2VzcyhKSVRDb21waWxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwsIGludDE2
X3QgZGVsdGFDaGVja0ltbVRvQ2FsbCwgaW50MTZfdCBkZWx0YUNhbGxUb1N0cnVjdENoZWNrLCBp
bnQxNl90IGRlbHRhQ2FsbFRvTG9hZE9yU3RvcmUsIGludDE2X3QgZGVsdGFDYWxsVG9TbG93Q2Fz
ZSA9IDAsIGludDE2X3QgZGVsdGFDYWxsVG9Eb25lID0gMCwgaW50OF90IGJhc2VHUFIgPSAwLCBp
bnQ4X3QgdmFsdWVHUFIgPSAwLCBpbnQ4X3Qgc2NyYXRjaEdQUiA9IDApCisgICAgdm9pZCBhZGRQ
cm9wZXJ0eUFjY2VzcyhKSVRDb21waWxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwsIGludDE2X3QgZGVs
dGFDaGVja0ltbVRvQ2FsbCwgaW50MTZfdCBkZWx0YUNhbGxUb1N0cnVjdENoZWNrLCBpbnQxNl90
IGRlbHRhQ2FsbFRvTG9hZE9yU3RvcmUsIGludDE2X3QgZGVsdGFDYWxsVG9TbG93Q2FzZSwgaW50
MTZfdCBkZWx0YUNhbGxUb0RvbmUsIGludDhfdCBiYXNlR1BSLCBpbnQ4X3QgdmFsdWVHUFIsIGlu
dDhfdCBzY3JhdGNoR1BSKQogICAgIHsKICAgICAgICAgbV9wcm9wZXJ0eUFjY2Vzc2VzLmFwcGVu
ZChQcm9wZXJ0eUFjY2Vzc1JlY29yZChmdW5jdGlvbkNhbGwsIGRlbHRhQ2hlY2tJbW1Ub0NhbGws
IGRlbHRhQ2FsbFRvU3RydWN0Q2hlY2ssIGRlbHRhQ2FsbFRvTG9hZE9yU3RvcmUsIGRlbHRhQ2Fs
bFRvU2xvd0Nhc2UsIGRlbHRhQ2FsbFRvRG9uZSwgIGJhc2VHUFIsIHZhbHVlR1BSLCBzY3JhdGNo
R1BSKSk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNo
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2gu
Y3BwCShyZXZpc2lvbiA5MDA1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVw
YXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRG
R0pJVENvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBERkcgewpAQCAtMjUwLDYgKzI1MSwxNyBAQCBzdGF0aWMgVl9ERkdPcGVy
YXRpb25fRUpKSSBhcHByb3ByaWF0ZVB1CiAgICAgcmV0dXJuIG9wZXJhdGlvblB1dEJ5SWROb25T
dHJpY3Q7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RQcm90b3R5cGUoTWFjcm9Bc3NlbWJsZXIgJnN0
dWJKaXQsIEdQUlJlZyBzY3JhdGNoR1BSLCBKU1ZhbHVlIHByb3RvdHlwZSwgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpCit7CisgICAgaWYgKHByb3RvdHlwZS5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFTU0VSVChwcm90b3R5cGUuaXNDZWxsKCkp
OworICAgIAorICAgIHN0dWJKaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihw
cm90b3R5cGUuYXNDZWxsKCkpLCBzY3JhdGNoR1BSKTsKKyAgICBmYWlsdXJlQ2FzZXMuYXBwZW5k
KHN0dWJKaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc2NyYXRjaEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvdHlwZS5hc0NlbGwoKS0+c3RydWN0dXJlKCkp
KSk7Cit9CisKIHN0YXRpYyBib29sIHRyeUNhY2hlUHV0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90
JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8sIFB1dEtpbmQgcHV0S2luZCkKIHsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwpAQCAtMjU5LDYg
KzI3MSw4IEBAIHN0YXRpYyBib29sIHRyeUNhY2hlUHV0QnlJRChFeGVjU3RhdGUqIGUKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIEpTQ2VsbCogYmFzZUNlbGwgPSBiYXNlVmFsdWUuYXNDZWxs
KCk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7Cisg
ICAgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUtPnByZXZpb3VzSUQoKTsKKyAg
ICAKICAgICBpZiAoIXNsb3QuaXNDYWNoZWFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmIChzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkpCkBAIC0yNjYsOCAr
MjgwLDgyIEBAIHN0YXRpYyBib29sIHRyeUNhY2hlUHV0QnlJRChFeGVjU3RhdGUqIGUKIAogICAg
IC8vIE9wdGltaXplIHNlbGYgYWNjZXNzLgogICAgIGlmIChzbG90LmJhc2UoKSA9PSBiYXNlVmFs
dWUpIHsKLSAgICAgICAgaWYgKHNsb3QudHlwZSgpID09IFB1dFByb3BlcnR5U2xvdDo6TmV3UHJv
cGVydHkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzbG90LnR5cGUo
KSA9PSBQdXRQcm9wZXJ0eVNsb3Q6Ok5ld1Byb3BlcnR5KSB7CisgICAgICAgICAgICBpZiAoc3Ry
dWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHNraXAgb3B0aW1pemluZyB0aGUgY2FzZSB3aGVy
ZSB3ZSBuZWVkIGEgcmVhbGxvYworICAgICAgICAgICAgaWYgKG9sZFN0cnVjdHVyZS0+cHJvcGVy
dHlTdG9yYWdlQ2FwYWNpdHkoKSAhPSBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBub3JtYWxpemVQcm90b3R5cGVDaGFpbihleGVjLCBiYXNlQ2VsbCk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIFN0cnVjdHVyZUNoYWluKiBwcm90b3R5cGVDaGFpbiA9IHN0cnVjdHVy
ZS0+cHJvdG90eXBlQ2hhaW4oZXhlYyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEdQUlJl
ZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5iYXNlR1BSKTsKKyAgICAg
ICAgICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8udmFs
dWVHUFIpOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBzdGF0aWNfY2FzdDxHUFJS
ZWc+KHN0dWJJbmZvLnUudW5zZXQuc2NyYXRjaEdQUik7CisgICAgICAgICAgICBib29sIG5lZWRU
b1Jlc3RvcmVTY3JhdGNoID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFTU0VS
VChzY3JhdGNoR1BSICE9IGJhc2VHUFIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlciBzdHViSml0OworICAgICAgICAgICAgCisgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3QgZmFpbHVyZUNhc2VzOworICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAoc2NyYXRjaEdQUiA9PSBJbnZhbGlkR1BSUmVnKSB7CisgICAgICAgICAgICAgICAgc2NyYXRj
aEdQUiA9IEpJVENvZGVHZW5lcmF0b3I6OnNlbGVjdFNjcmF0Y2hHUFIoYmFzZUdQUiwgdmFsdWVH
UFIpOworICAgICAgICAgICAgICAgIHN0dWJKaXQucHVzaChzY3JhdGNoR1BSKTsKKyAgICAgICAg
ICAgICAgICBuZWVkVG9SZXN0b3JlU2NyYXRjaCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoc3R1YkppdC5icmFuY2hQ
dHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNl
R1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIob2xkU3RydWN0dXJlKSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXN0UHJv
dG90eXBlKHN0dWJKaXQsIHNjcmF0Y2hHUFIsIG9sZFN0cnVjdHVyZS0+c3RvcmVkUHJvdG90eXBl
KCksIGZhaWx1cmVDYXNlcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwdXRLaW5k
ID09IE5vdERpcmVjdCkgeworICAgICAgICAgICAgICAgIGZvciAoV3JpdGVCYXJyaWVyPFN0cnVj
dHVyZT4qIGl0ID0gcHJvdG90eXBlQ2hhaW4tPmhlYWQoKTsgKml0OyArK2l0KQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0UHJvdG90eXBlKHN0dWJKaXQsIHNjcmF0Y2hHUFIsICgqaXQpLT5zdG9y
ZWRQcm90b3R5cGUoKSwgZmFpbHVyZUNhc2VzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAgICAgc3R1YkppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6
OnN0cnVjdHVyZU9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAoc3RydWN0dXJlLT5pc1VzaW5n
SW5saW5lU3RvcmFnZSgpKQorICAgICAgICAgICAgICAgIHN0dWJKaXQuc3RvcmVQdHIodmFsdWVH
UFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTT2JqZWN0OjpvZmZzZXRPZklu
bGluZVN0b3JhZ2UoKSArIHNsb3QuY2FjaGVkT2Zmc2V0KCkgKiBzaXplb2YoSlNWYWx1ZSkpKTsK
KyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0dWJKaXQubG9hZFB0cihNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU09iamVjdDo6b2Zmc2V0T2ZQcm9wZXJ0eVN0
b3JhZ2UoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIHN0dWJKaXQuc3RvcmVQdHIo
dmFsdWVHUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIHNsb3QuY2FjaGVk
T2Zmc2V0KCkgKiBzaXplb2YoSlNWYWx1ZSkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKKyAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIGZhaWx1cmU7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGlmIChuZWVkVG9SZXN0b3JlU2NyYXRjaCkgeworICAgICAgICAgICAgICAgIHN0dWJKaXQucG9w
KHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdHViSml0Lmp1bXAoKTsK
KworICAgICAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5saW5rKCZzdHViSml0KTsKKyAgICAgICAg
ICAgICAgICBzdHViSml0LnBvcChzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBmYWlsdXJl
ID0gc3R1YkppdC5qdW1wKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBz
dWNjZXNzID0gc3R1YkppdC5qdW1wKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExpbmtC
dWZmZXIgcGF0Y2hCdWZmZXIoKmdsb2JhbERhdGEsICZzdHViSml0LCBjb2RlQmxvY2stPmV4ZWN1
dGFibGVQb29sKCkpOworICAgICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhzdWNjZXNzLCBzdHVi
SW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldChzdHViSW5mby5kZWx0YUNhbGxU
b0RvbmUpKTsKKyAgICAgICAgICAgIGlmIChuZWVkVG9SZXN0b3JlU2NyYXRjaCkKKyAgICAgICAg
ICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGZhaWx1cmUsIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2Nh
dGlvbi5sYWJlbEF0T2Zmc2V0KHN0dWJJbmZvLmRlbHRhQ2FsbFRvU2xvd0Nhc2UpKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGZhaWx1cmVDYXNl
cywgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoc3R1YkluZm8uZGVs
dGFDYWxsVG9TbG93Q2FzZSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBDb2RlTG9jYXRp
b25MYWJlbCBlbnRyeUxhYmVsID0gcGF0Y2hCdWZmZXIuZmluYWxpemVDb2RlQWRkZW5kdW0oKTsK
KyAgICAgICAgICAgIHN0dWJJbmZvLnN0dWJSb3V0aW5lID0gZW50cnlMYWJlbDsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgaG90UGF0aEJlZ2luID0gc3R1Yklu
Zm8uaG90UGF0aEJlZ2luOworICAgICAgICAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVy
KGNvZGVCbG9jayk7CisgICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhzdHViSW5mby5j
YWxsUmV0dXJuTG9jYXRpb24uanVtcEF0T2Zmc2V0KHN0dWJJbmZvLmRlbHRhQ2FsbFRvU3RydWN0
Q2hlY2spLCBlbnRyeUxhYmVsKTsKKyAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKHN0
dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgYXBwcm9wcmlhdGVQdXRCeUlkRnVuY3Rpb24oc2xv
dCwgcHV0S2luZCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQogCiAgICAgICAgIGRmZ1JlcGF0Y2hCeUlkU2VsZkFjY2Vzcyhjb2RlQmxvY2ssIHN0
dWJJbmZvLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zmc2V0KCksIGFwcHJvcHJpYXRlUHV0QnlJ
ZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpLCBmYWxzZSk7CiAgICAgICAgIHN0dWJJbmZvLmluaXRQ
dXRCeUlkUmVwbGFjZSgqZ2xvYmFsRGF0YSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwg
c3RydWN0dXJlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>