<?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>113473</bug_id>
          
          <creation_ts>2013-03-27 20:28:03 -0700</creation_ts>
          <short_desc>Rename toScriptElement to differentiate it from other to* functions and better describe its function</short_desc>
          <delta_ts>2013-03-27 22:03:02 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Rogers">pdr</reporter>
          <assigned_to name="Philip Rogers">pdr</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>inferno</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>865135</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-03-27 20:28:03 -0700</bug_when>
    <thetext>ScriptElement::toScriptElement is different from other to* functions (e.g., Element::toElement, etc) in that it returns 0 if the cast is unsuccessful. These functions have security implications and need to be clear and consistent.
http://trac.webkit.org/browser/trunk/Source/WebCore/dom/ScriptElement.cpp#L417

We should rename toScriptElement to toScriptElementIfPossible (or similar) both to clarify the function behavior and to differentiate it from other to* functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865150</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-03-27 21:02:48 -0700</bug_when>
    <thetext>In JSC, we use jsCast&lt;T&gt; and jsDynamicCast&lt;T&gt;, to mimic static_cast&lt;T&gt; and dynamic_cast&lt;T&gt;.

Ryosuke and I were discussing using domCast&lt;T&gt; or coreCast&lt;T&gt;, along with domDynamicCast&lt;T&gt; or coreDynamicCast&lt;T&gt; for the DOM. This would allow for specialized implementations while keeping the interface consistent at all call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865152</commentid>
    <comment_count>2</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-03-27 21:27:38 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; In JSC, we use jsCast&lt;T&gt; and jsDynamicCast&lt;T&gt;, to mimic static_cast&lt;T&gt; and dynamic_cast&lt;T&gt;.
&gt; 
&gt; Ryosuke and I were discussing using domCast&lt;T&gt; or coreCast&lt;T&gt;, along with domDynamicCast&lt;T&gt; or coreDynamicCast&lt;T&gt; for the DOM. This would allow for specialized implementations while keeping the interface consistent at all call sites.

I think Abhishek is working on something similar to domCast&lt;T&gt; to help reduce the security issues involved in our many static_casts. My understanding is that we will only return 0 for null casts, so the toScriptElement function is really an odd one out.

I was not aware of jsDynamicCast before, but I like it. Abhishek, is there a bug that&apos;s tracking this work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865153</commentid>
    <comment_count>3</comment_count>
      <attachid>195478</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-03-27 21:37:51 -0700</bug_when>
    <thetext>Created attachment 195478
Patch that just handles the rename</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865160</commentid>
    <comment_count>4</comment_count>
      <attachid>195478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-27 22:02:57 -0700</bug_when>
    <thetext>Comment on attachment 195478
Patch that just handles the rename

Clearing flags on attachment: 195478

Committed r147057: &lt;http://trac.webkit.org/changeset/147057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865161</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-27 22:03:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195478</attachid>
            <date>2013-03-27 21:37:51 -0700</date>
            <delta_ts>2013-03-27 22:02:57 -0700</delta_ts>
            <desc>Patch that just handles the rename</desc>
            <filename>113473.1.patch</filename>
            <type>text/plain</type>
            <size>11196</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzA1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAzLTI3ICBQaGlsaXAg
Um9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHRvU2NyaXB0RWxlbWVu
dCAtPiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM0NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgU2NyaXB0RWxlbWVudDo6dG9TY3JpcHRFbGVt
ZW50IHRvIFNjcmlwdEVsZW1lbnQ6OnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUgdG8KKyAgICAg
ICAgZGlmZmVyZW50aWF0ZSB0aGlzIGZ1bmN0aW9uIGZyb20gb3RoZXIgdG8qRWxlbWVudCBmdW5j
dGlvbnMsIGFuZCB0byBiZXR0ZXIgZGVzY3JpYmUgdGhlCisgICAgICAgIGZ1bmN0aW9uJ3MgYmVo
YXZpb3IuIE90aGVyIHRvKkVsZW1lbnQgZnVuY3Rpb25zIGRvIG5vdCByZXR1cm4gbnVsbCBpZiB0
aGUgY2FzdCBmYWlscywKKyAgICAgICAgd2hlcmVhcyB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
IGRvZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIHRoaXMgaXMganVzdCBhIHJlZmFjdG9y
aW5nLgorCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKToKKworICAgICAg
ICAgICAgVGhpcyBpcyB0aGUgb25seSB1bmNoZWNrZWQgcmV0dXJuIHZhbHVlIGJ1dCB0aGVyZSBp
c24ndCBhIHNlY3VyaXR5IGlzc3VlIGhlcmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojpjb2xsZWN0
T3B0aW9uSW5uZXJUZXh0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9u
U2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNo
TGF0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEZv
cmVpZ25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2Ny
aXB0QW5kRGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVy
OjpyZXF1ZXN0UGVuZGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVu
bmVyOjpydW5TY3JpcHQpOgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVk
KToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcyk6CisgICAgICAg
ICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVN0YXJ0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VFbmRFbGVtZW50KToKKwogMjAxMy0wMy0yNyAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEZWJ1ZyB0ZXN0IGZpeCBh
ZnRlciByMTQ3MDE4LgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAkocmV2
aXNpb24gMTQ3MDUxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MTQsNyArNDE0LDcgQEAgU3RyaW5nIFNjcmlwdEVsZW1lbnQ6OnNj
cmlwdENvbnRlbnQoKSBjbwogICAgIHJldHVybiBjb250ZW50LnRvU3RyaW5nKCk7CiB9CiAKLVNj
cmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVudChFbGVtZW50KiBlbGVtZW50KQorU2NyaXB0RWxl
bWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVtZW50KiBlbGVtZW50KQogewogICAg
IGlmIChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OnNjcmlwdFRhZykpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU2NyaXB0
RWxlbWVudCo+KGVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCShy
ZXZpc2lvbiAxNDcwNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9m
YWxsYmFja0NoYXJhY3RlckVuY29kaW5nOwogfTsKIAotU2NyaXB0RWxlbWVudCogdG9TY3JpcHRF
bGVtZW50KEVsZW1lbnQqKTsKK1NjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoRWxlbWVudCopOwogCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3Bw
CShyZXZpc2lvbiAxNDcwNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgU2NyaXB0UnVubmVyOjp0
aW1lckZpcmVkKFRpbWVyPFNjcmkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsr
aSkgewogICAgICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IHNjcmlwdHNbaV0uY2Fj
aGVkU2NyaXB0KCk7CiAgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gc2NyaXB0c1tp
XS5yZWxlYXNlRWxlbWVudEFuZENsZWFyKCk7Ci0gICAgICAgIHRvU2NyaXB0RWxlbWVudChlbGVt
ZW50LmdldCgpKS0+ZXhlY3V0ZShjYWNoZWRTY3JpcHQpOworICAgICAgICB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5leGVjdXRlKGNhY2hlZFNjcmlwdCk7CiAgICAg
ICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAkocmV2aXNp
b24gMTQ3MDUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM4MSw3ICszODEsNyBAQCBTdHJpbmcgSFRNTE9wdGlvbkVsZW1l
bnQ6OmNvbGxlY3RPcHRpb25JCiAgICAgICAgIGlmIChub2RlLT5pc1RleHROb2RlKCkpCiAgICAg
ICAgICAgICB0ZXh0LmFwcGVuZChub2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRleHQg
bm9kZXMgaW5zaWRlIHNjcmlwdCBlbGVtZW50cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlvbiB0
ZXh0LgotICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvU2NyaXB0RWxlbWVu
dCh0b0VsZW1lbnQobm9kZSkpKQorICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYm
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUodG9FbGVtZW50KG5vZGUpKSkKICAgICAgICAgICAg
IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbihub2RlLCB0aGlzKTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQobm9k
ZSwgdGhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCShyZXZpc2lvbiAxNDcwNTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2soSFRNTENvbnN0
CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmF0dGFjaExhdGVyKENvbnRhaW5lck5vZGUq
IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcnBDaGlsZCwgYm9vbCBzZWxmQ2xvc2luZykKIHsK
LSAgICBBU1NFUlQoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xp
Y3kpIHx8ICFwcnBDaGlsZC5nZXQoKS0+aXNFbGVtZW50Tm9kZSgpIHx8ICF0b1NjcmlwdEVsZW1l
bnQodG9FbGVtZW50KHBycENoaWxkLmdldCgpKSkpOworICAgIEFTU0VSVChzY3JpcHRpbmdDb250
ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIXBycENoaWxkLmdldCgpLT5p
c0VsZW1lbnROb2RlKCkgfHwgIXRvU2NyaXB0RWxlbWVudElmUG9zc2libGUodG9FbGVtZW50KHBy
cENoaWxkLmdldCgpKSkpOwogICAgIEFTU0VSVChwbHVnaW5Db250ZW50SXNBbGxvd2VkKG1fcGFy
c2VyQ29udGVudFBvbGljeSkgfHwgIXBycENoaWxkLT5pc1BsdWdpbkVsZW1lbnQoKSk7CiAKICAg
ICBIVE1MQ29uc3RydWN0aW9uU2l0ZVRhc2sgdGFzazsKQEAgLTQ2Niw3ICs0NjYsNyBAQCB2b2lk
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRGb3JlaWduCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsgLy8gcGFyc2VFcnJvciB3aGVuIHhtbG5zIG9yIHhtbG5zOnhsaW5rIGFyZSB3cm9uZy4KIAog
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCh0b2tlbiwgbmFtZXNw
YWNlVVJJKTsKLSAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRl
bnRQb2xpY3kpIHx8ICF0b1NjcmlwdEVsZW1lbnQoZWxlbWVudC5nZXQoKSkpCisgICAgaWYgKHNj
cmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKSkKICAgICAgICAgYXR0YWNoTGF0ZXIo
Y3VycmVudE5vZGUoKSwgZWxlbWVudCwgdG9rZW4tPnNlbGZDbG9zaW5nKCkpOwogICAgIGlmICgh
dG9rZW4tPnNlbGZDbG9zaW5nKCkpCiAgICAgICAgIG1fb3BlbkVsZW1lbnRzLnB1c2goSFRNTFN0
YWNrSXRlbTo6Y3JlYXRlKGVsZW1lbnQucmVsZWFzZSgpLCB0b2tlbiwgbmFtZXNwYWNlVVJJKSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVy
LmNwcAkocmV2aXNpb24gMTQ3MDUxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFNjcmlwdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lk
IEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyCiAKICAgICAvLyBDbGVhciB0aGUg
cGVuZGluZyBzY3JpcHQgYmVmb3JlIHBvc3NpYmxlIHJlbnRyYW5jeSBmcm9tIGV4ZWN1dGVTY3Jp
cHQoKQogICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gcGVuZGluZ1NjcmlwdC5yZWxlYXNl
RWxlbWVudEFuZENsZWFyKCk7Ci0gICAgaWYgKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQg
PSB0b1NjcmlwdEVsZW1lbnQoZWxlbWVudC5nZXQoKSkpIHsKKyAgICBpZiAoU2NyaXB0RWxlbWVu
dCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQo
KSkpIHsKICAgICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVt
ZW50ZXIobV9zY3JpcHROZXN0aW5nTGV2ZWwpOwogICAgICAgICBJZ25vcmVEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlciBpZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRl
cihtX2RvY3VtZW50KTsKICAgICAgICAgaWYgKGVycm9yT2NjdXJyZWQpCkBAIC0yNjcsNyArMjY3
LDcgQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGVuZGluZ1NjcgogICAgIEFTU0VS
VCghcGVuZGluZ1NjcmlwdC5lbGVtZW50KCkpOwogICAgIHBlbmRpbmdTY3JpcHQuc2V0RWxlbWVu
dChzY3JpcHQpOwogICAgIC8vIFRoaXMgc2hvdWxkIGNvcnJlY3RseSByZXR1cm4gMCBmb3IgZW1w
dHkgb3IgaW52YWxpZCBzcmNWYWx1ZXMuCi0gICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQg
PSB0b1NjcmlwdEVsZW1lbnQoc2NyaXB0KS0+Y2FjaGVkU2NyaXB0KCkuZ2V0KCk7CisgICAgQ2Fj
aGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKHNjcmlw
dCktPmNhY2hlZFNjcmlwdCgpLmdldCgpOwogICAgIGlmICghY2FjaGVkU2NyaXB0KSB7CiAgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7IC8vIERpc3BhdGNoIGVycm9yIGV2ZW50LgogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpy
dW5TY3JpcHQoRWxlbWVudAogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQoIWhh
c1BhcnNlckJsb2NraW5nU2NyaXB0KCkpOwogICAgIHsKLSAgICAgICAgU2NyaXB0RWxlbWVudCog
c2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudChzY3JpcHQpOworICAgICAgICBTY3JpcHRF
bGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShzY3JpcHQp
OwogCiAgICAgICAgIC8vIFRoaXMgY29udGFpbnMgYm90aCBhbmQgQVNTRVJUSU9OIGFuZCBhIG51
bGwgY2hlY2sgc2luY2Ugd2Ugc2hvdWxkIG5vdAogICAgICAgICAvLyBiZSBnZXR0aW5nIGludG8g
dGhlIGNhc2Ugb2YgYSBudWxsIHNjcmlwdCBlbGVtZW50LCBidXQgc2VlbSB0byBiZSBmcm9tCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNw
cAkocmV2aXNpb24gMTQ3MDUxKQorKysgU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIFhN
TERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChDCiAgICAgUmVmUHRyPEVsZW1lbnQ+IGUg
PSBtX3NjcmlwdEVsZW1lbnQ7CiAgICAgbV9zY3JpcHRFbGVtZW50ID0gMDsKIAotICAgIFNjcmlw
dEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnQoZS5nZXQoKSk7CisgICAg
U2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUo
ZS5nZXQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogCiAgICAgLy8gSmF2YVNjcmlw
dCBjYW4gZGV0YWNoIHRoaXMgcGFyc2VyLCBtYWtlIHN1cmUgaXQncyBrZXB0IGFsaXZlIGV2ZW4g
aWYgZGV0YWNoZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCShyZXZpc2lvbiAxNDcwNTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFy
dEVsZW1lbnROcyhjCiAKICAgICBuZXdFbGVtZW50LT5iZWdpblBhcnNpbmdDaGlsZHJlbigpOwog
Ci0gICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudChuZXdF
bGVtZW50LmdldCgpKTsKKyAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50LmdldCgpKTsKICAgICBpZiAoc2NyaXB0RWxl
bWVudCkKICAgICAgICAgbV9zY3JpcHRTdGFydFBvc2l0aW9uID0gdGV4dFBvc2l0aW9uKCk7CiAK
QEAgLTg2OSw3ICs4NjksNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMo
KQogICAgIGlmIChoYWNrQXJvdW5kTGliWE1MRW50aXR5UGFyc2luZ0J1ZygpICYmIGNvbnRleHQo
KS0+ZGVwdGggPD0gZGVwdGhUcmlnZ2VyaW5nRW50aXR5RXhwYW5zaW9uKCkpCiAgICAgICAgIHNl
dERlcHRoVHJpZ2dlcmluZ0VudGl0eUV4cGFuc2lvbigtMSk7CiAKLSAgICBpZiAoIXNjcmlwdGlu
Z0NvbnRlbnRJc0FsbG93ZWQocGFyc2VyQ29udGVudFBvbGljeSgpKSAmJiBuLT5pc0VsZW1lbnRO
b2RlKCkgJiYgdG9TY3JpcHRFbGVtZW50KHRvRWxlbWVudChuLmdldCgpKSkpIHsKKyAgICBpZiAo
IXNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQocGFyc2VyQ29udGVudFBvbGljeSgpKSAmJiBuLT5p
c0VsZW1lbnROb2RlKCkgJiYgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSh0b0VsZW1lbnQobi5n
ZXQoKSkpKSB7CiAgICAgICAgIHBvcEN1cnJlbnROb2RlKCk7CiAgICAgICAgIG4tPnJlbW92ZShJ
R05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODg5LDcgKzg4OSw3IEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50
KGVsZW1lbnQpOworICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQpOwogICAgIGlmICghc2NyaXB0RWxlbWVudCkgewogICAg
ICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAJKHJldmlzaW9u
IDE0NzA1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5MSw3ICs0OTEsNyBAQCB2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjpwYXJzZVN0YXJ0RWxlbWVuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBT
Y3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50KG5ld0VsZW1lbnQu
Z2V0KCkpOworICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKG5ld0VsZW1lbnQuZ2V0KCkpOwogICAgIGlmIChzY3JpcHRFbGVtZW50KQog
ICAgICAgICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9zaXRpb24oKTsKIApAQCAtNTE1
LDcgKzUxNSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlRW5kRWxlbWVudCgKICAg
ICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbiA9IG1fY3VycmVudE5vZGU7CiAgICAgbi0+ZmluaXNo
UGFyc2luZ0NoaWxkcmVuKCk7CiAKLSAgICBpZiAoIXNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQo
cGFyc2VyQ29udGVudFBvbGljeSgpKSAmJiBuLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9TY3JpcHRF
bGVtZW50KHRvRWxlbWVudChuLmdldCgpKSkpIHsKKyAgICBpZiAoIXNjcmlwdGluZ0NvbnRlbnRJ
c0FsbG93ZWQocGFyc2VyQ29udGVudFBvbGljeSgpKSAmJiBuLT5pc0VsZW1lbnROb2RlKCkgJiYg
dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSh0b0VsZW1lbnQobi5nZXQoKSkpKSB7CiAgICAgICAg
IHBvcEN1cnJlbnROb2RlKCk7CiAgICAgICAgIG4tPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OnBhcnNlRW5kRWxlbWVudCgKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNjcmlw
dEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnQoZWxlbWVudCk7CisgICAg
U2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUo
ZWxlbWVudCk7CiAgICAgaWYgKCFzY3JpcHRFbGVtZW50KSB7CiAgICAgICAgIHBvcEN1cnJlbnRO
b2RlKCk7CiAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>