<?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>43735</bug_id>
          
          <creation_ts>2010-08-09 11:35:13 -0700</creation_ts>
          <short_desc>C++ DOM binding classes with private structs need operator= overload</short_desc>
          <delta_ts>2010-08-11 05:31:16 -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>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>Wx</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kevin Ollivier">kevino</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>262244</commentid>
    <comment_count>0</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-08-09 11:35:13 -0700</bug_when>
    <thetext>C++ DOM binding classes which have a private struct that manages the WebCore pointer already have a copy constructor defined that passes the pointer properly, but they do not define operator= so outside of construction, assignment leads to a crash, since it does a simple copy of the private structure rather than creating a new one and assigning the pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262246</commentid>
    <comment_count>1</comment_count>
      <attachid>63912</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-08-09 11:38:30 -0700</bug_when>
    <thetext>Created attachment 63912
Add operator= overloads to C++ DOM binding classes with private structs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262248</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-08-09 11:40:45 -0700</bug_when>
    <thetext>Are there cases where assignment is used like this? If so, you should be able to write a layout test.

If assignment is not used like this, I suggest just forbidding assignment, in the same way the Noncopyable class does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262249</commentid>
    <comment_count>3</comment_count>
      <attachid>63912</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-08-09 11:41:50 -0700</bug_when>
    <thetext>Comment on attachment 63912
Add operator= overloads to C++ DOM binding classes with private structs.

r- because the new code in this patch does not include a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262254</commentid>
    <comment_count>4</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-08-09 11:52:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Are there cases where assignment is used like this? If so, you should be able to write a layout test.

Yes, I ran into this problem when generating Python wrappers for these bindings. The SWIG tool does something along these lines (code simplified to show the relevant bits):

WebDOMNode result;

{
    result = range-&gt;startContainer();
}
 
swigptr = new WebDOMNode(result);

The block assigning result has some extra error handling code, etc. which is why they isolate it in a code block.

As for the LayoutTest part, does WebDOM* have a test suite yet? If so I&apos;ll be happy to add a case for it.

&gt; If assignment is not used like this, I suggest just forbidding assignment, in the same way the Noncopyable class does.

For a public API like the WebDOM* classes, I&apos;m concerned that making the objects non-copyable would be pretty restrictive. (And, of course, it would really set me back on trying to get Python bindings working.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262353</commentid>
    <comment_count>5</comment_count>
      <attachid>63912</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-08-09 15:33:27 -0700</bug_when>
    <thetext>Comment on attachment 63912
Add operator= overloads to C++ DOM binding classes with private structs.

Okeedokee.

I don&apos;t think WebDOM* has a test suite yet. That&apos;s a shame, but it&apos;s not the fault of this patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262384</commentid>
    <comment_count>6</comment_count>
      <attachid>63912</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-09 16:12:20 -0700</bug_when>
    <thetext>Comment on attachment 63912
Add operator= overloads to C++ DOM binding classes with private structs.

You’ll need to update the test results checked in at the directory WebCore/bindings/cpp as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262489</commentid>
    <comment_count>7</comment_count>
      <attachid>63974</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-08-09 21:48:47 -0700</bug_when>
    <thetext>Created attachment 63974
Patch updated with bindings test outputs updated.

Thanks for catching the bindings test updates! I didn&apos;t realize these were in the tree. New patch up now with them added.

Note that there are a couple other changes (with the ENABLE(Conditional)) in one of the test headers as well, this is from a change in a previous commit (the C++ DOM bindings wasn&apos;t enclosing the function definitions with the conditional #if, only their implementations) and the results are correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263067</commentid>
    <comment_count>8</comment_count>
      <attachid>63974</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-10 23:26:02 -0700</bug_when>
    <thetext>Comment on attachment 63974
Patch updated with bindings test outputs updated.

Forwarding ggaren&apos;s r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263198</commentid>
    <comment_count>9</comment_count>
      <attachid>63974</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-11 05:31:11 -0700</bug_when>
    <thetext>Comment on attachment 63974
Patch updated with bindings test outputs updated.

Clearing flags on attachment: 63974

Committed r65147: &lt;http://trac.webkit.org/changeset/65147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263200</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-11 05:31:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63912</attachid>
            <date>2010-08-09 11:38:30 -0700</date>
            <delta_ts>2010-08-10 23:26:25 -0700</delta_ts>
            <desc>Add operator= overloads to C++ DOM binding classes with private structs.</desc>
            <filename>assignment_fix.patch</filename>
            <type>text/plain</type>
            <size>3281</size>
            <attacher name="Kevin Ollivier">kevino</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDgtMDkgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9s
bGl2aWVycy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIG9wZXJhdG9yPSBvdmVybG9hZCBmb3IgQysrIERPTSBiaW5kaW5nIGNsYXNzZXMg
d2hpY2ggaGF2ZSBwcml2YXRlIHN0cnVjdHMuIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM3MzUKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BT
ISkKKworICAgICAgICAqIGJpbmRpbmdzL2NwcC9XZWJET01FdmVudFRhcmdldC5jcHA6CisgICAg
ICAgIChXZWJET01FdmVudFRhcmdldDo6b3BlcmF0b3I9KToKKyAgICAgICAgKiBiaW5kaW5ncy9j
cHAvV2ViRE9NRXZlbnRUYXJnZXQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JDUFAucG06CisKIDIwMTAtMDgtMDkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NDk5
My4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTUV2ZW50VGFyZ2V0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01FdmVudFRhcmdldC5jcHAJKHJl
dmlzaW9uIDY0OTkwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9NRXZlbnRUYXJnZXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsMyArMTk3LDEwIEBACiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIFdlYkRPTUV2ZW50VGFyZ2V0KCk7CiB9CisKK1dlYkRPTUV2
ZW50VGFyZ2V0JiBXZWJET01FdmVudFRhcmdldDo6b3BlcmF0b3I9KGNvbnN0IFdlYkRPTUV2ZW50
VGFyZ2V0JiBjb3B5KQoreworICAgIGRlbGV0ZSBtX2ltcGw7CisgICAgbV9pbXBsID0gY29weS5p
bXBsKCkgPyBuZXcgV2ViRE9NRXZlbnRUYXJnZXRQcml2YXRlKGNvcHkuaW1wbCgpKSA6IDA7Cisg
ICAgcmV0dXJuICp0aGlzOworfQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9NRXZl
bnRUYXJnZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01FdmVu
dFRhcmdldC5oCShyZXZpc2lvbiA2NDk5MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRP
TUV2ZW50VGFyZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDcgQEAKICAgICBXZWJE
T01Ob3RpZmljYXRpb24gdG9Ob3RpZmljYXRpb24oKTsKICAgICBXZWJET01XZWJTb2NrZXQgdG9X
ZWJTb2NrZXQoKTsKIAorICAgIFdlYkRPTUV2ZW50VGFyZ2V0JiBvcGVyYXRvcj0oY29uc3QgV2Vi
RE9NRXZlbnRUYXJnZXQmKTsKIHByb3RlY3RlZDoKICAgICBzdHJ1Y3QgV2ViRE9NRXZlbnRUYXJn
ZXRQcml2YXRlOwogICAgIFdlYkRPTUV2ZW50VGFyZ2V0UHJpdmF0ZSogbV9pbXBsOwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0JKHJldmlzaW9u
IDY0OTkwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0J
KHdvcmtpbmcgY29weSkKQEAgLTM3OSw5ICszNzksMTAgQEAKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgICRjbGFzc05hbWUoKTtcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgZXhwbGljaXQgJGNsYXNzTmFtZSgkaW1wbENsYXNzTmFtZVdpdGhOYW1lc3BhY2UqKTtcbiIp
OwogCi0gICAgIyBDb3B5IGNvbnN0cnVjdG9yIG9uIGNsYXNzZXMgd2hpY2ggaGF2ZSB0aGUgZC1w
dHIKKyAgICAjIENvcHkgY29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3Igb24gY2xh
c3NlcyB3aGljaCBoYXZlIHRoZSBkLXB0cgogICAgIGlmICgkcGFyZW50TmFtZSBlcSAiV2ViRE9N
T2JqZWN0IikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUo
Y29uc3QgJGNsYXNzTmFtZSYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9JiBvcGVyYXRvcj0oY29uc3QgJGNsYXNzTmFtZSYpO1xuIik7CiAgICAg
fQogCiAgICAgIyBEZXN0cnVjdG9yCkBAIC02MzQsNiArNjM1LDEzIEBACiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIG1faW1wbCA9IGNvcHkuaW1wbCgpID8gbmV3ICR7Y2xhc3NOYW1l
fVByaXZhdGUoY29weS5pbXBsKCkpIDogMDtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CiAKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX0m
ICR7Y2xhc3NOYW1lfTo6b3BlcmF0b3JcPShjb25zdCAke2NsYXNzTmFtZX0mIGNvcHkpXG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgZGVsZXRlIG1faW1wbDtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBtX2ltcGwgPSBjb3B5LmltcGwoKSA/IG5ldyAke2NsYXNzTmFtZX1Qcml2YXRlKGNv
cHkuaW1wbCgpKSA6IDA7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuICp0aGlzO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsQ2xhc3NOYW1lV2l0aE5hbWVzcGFjZSog
JHtjbGFzc05hbWV9OjppbXBsKCkgY29uc3RcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gbV9pbXBs
ID8gbV9pbXBsLT5pbXBsLmdldCgpIDogMDtcbiIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63974</attachid>
            <date>2010-08-09 21:48:47 -0700</date>
            <delta_ts>2010-08-11 05:31:11 -0700</delta_ts>
            <desc>Patch updated with bindings test outputs updated.</desc>
            <filename>assignment_fix2.patch</filename>
            <type>text/plain</type>
            <size>7980</size>
            <attacher name="Kevin Ollivier">kevino</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTA1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMDgtMDkgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9s
bGl2aWVycy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgT3ZlcnJpZGUgb3BlcmF0b3I9IGZvciBDKysgRE9NIGJpbmRpbmcgY2xhc3NlcyB3aXRo
IHByaXZhdGUgc3RydWN0cworICAgICAgICBhbmQgdXBkYXRlIEMrKyBET00gYmluZGluZ3MgdGVz
dCByZXN1bHRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDM3MzUKKworICAgICAgICAqIGJpbmRpbmdzL2NwcC9XZWJET01FdmVudFRhcmdldC5jcHA6
CisgICAgICAgIChXZWJET01FdmVudFRhcmdldDo6b3BlcmF0b3I9KToKKyAgICAgICAgKiBiaW5k
aW5ncy9jcHAvV2ViRE9NRXZlbnRUYXJnZXQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JDUFAucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0Q2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViRE9NVGVzdENhbGxiYWNrOjpv
cGVyYXRvcj0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVz
dENhbGxiYWNrLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkRPTVRlc3RJbnRlcmZhY2U6Om9wZXJhdG9y
PSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJm
YWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9wZXJhdG9yPSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmg6CisKIDIwMTAtMDgtMDkgIEdh
dmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFF0IGJ1
aWxkIGZpeCBhdHRlbXB0IFZJSUkuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01F
dmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9N
RXZlbnRUYXJnZXQuY3BwCShyZXZpc2lvbiA2NTA1MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvY3Bw
L1dlYkRPTUV2ZW50VGFyZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDMgKzE5NywxMCBA
QAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBXZWJET01FdmVudFRhcmdl
dCgpOwogfQorCitXZWJET01FdmVudFRhcmdldCYgV2ViRE9NRXZlbnRUYXJnZXQ6Om9wZXJhdG9y
PShjb25zdCBXZWJET01FdmVudFRhcmdldCYgY29weSkKK3sKKyAgICBkZWxldGUgbV9pbXBsOwor
ICAgIG1faW1wbCA9IGNvcHkuaW1wbCgpID8gbmV3IFdlYkRPTUV2ZW50VGFyZ2V0UHJpdmF0ZShj
b3B5LmltcGwoKSkgOiAwOworICAgIHJldHVybiAqdGhpczsKK30KSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvY3BwL1dlYkRPTUV2ZW50VGFyZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9jcHAvV2ViRE9NRXZlbnRUYXJnZXQuaAkocmV2aXNpb24gNjUwNTApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2NwcC9XZWJET01FdmVudFRhcmdldC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2
ICs2NCw3IEBACiAgICAgV2ViRE9NTm90aWZpY2F0aW9uIHRvTm90aWZpY2F0aW9uKCk7CiAgICAg
V2ViRE9NV2ViU29ja2V0IHRvV2ViU29ja2V0KCk7CiAKKyAgICBXZWJET01FdmVudFRhcmdldCYg
b3BlcmF0b3I9KGNvbnN0IFdlYkRPTUV2ZW50VGFyZ2V0Jik7CiBwcm90ZWN0ZWQ6CiAgICAgc3Ry
dWN0IFdlYkRPTUV2ZW50VGFyZ2V0UHJpdmF0ZTsKICAgICBXZWJET01FdmVudFRhcmdldFByaXZh
dGUqIG1faW1wbDsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
Q1BQLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yQ1BQLnBtCShyZXZpc2lvbiA2NTA1MCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yQ1BQLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zNzksOSArMzc5LDEwIEBACiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKCk7XG4iKTsKICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIGV4cGxpY2l0ICRjbGFzc05hbWUoJGltcGxDbGFzc05hbWVX
aXRoTmFtZXNwYWNlKik7XG4iKTsKIAotICAgICMgQ29weSBjb25zdHJ1Y3RvciBvbiBjbGFzc2Vz
IHdoaWNoIGhhdmUgdGhlIGQtcHRyCisgICAgIyBDb3B5IGNvbnN0cnVjdG9yIGFuZCBhc3NpZ25t
ZW50IG9wZXJhdG9yIG9uIGNsYXNzZXMgd2hpY2ggaGF2ZSB0aGUgZC1wdHIKICAgICBpZiAoJHBh
cmVudE5hbWUgZXEgIldlYkRPTU9iamVjdCIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICAkY2xhc3NOYW1lKGNvbnN0ICRjbGFzc05hbWUmKTtcbiIpOworICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSYgb3BlcmF0b3I9KGNvbnN0ICRjbGFz
c05hbWUmKTtcbiIpOwogICAgIH0KIAogICAgICMgRGVzdHJ1Y3RvcgpAQCAtNjM0LDYgKzYzNSwx
MyBAQAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBtX2ltcGwgPSBjb3B5LmltcGwo
KSA/IG5ldyAke2NsYXNzTmFtZX1Qcml2YXRlKGNvcHkuaW1wbCgpKSA6IDA7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiJHtjbGFzc05hbWV9JiAke2NsYXNzTmFtZX06Om9wZXJhdG9yXD0oY29uc3QgJHtjbGFz
c05hbWV9JiBjb3B5KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGRlbGV0ZSBtX2ltcGw7XG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgbV9pbXBsID0gY29weS5pbXBsKCkgPyBuZXcgJHtj
bGFzc05hbWV9UHJpdmF0ZShjb3B5LmltcGwoKSkgOiAwO1xuIik7CisgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiAqdGhpcztcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7CisKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIkaW1wbENsYXNz
TmFtZVdpdGhOYW1lc3BhY2UqICR7Y2xhc3NOYW1lfTo6aW1wbCgpIGNvbnN0XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIG1faW1wbCA/IG1faW1wbC0+aW1wbC5nZXQoKSA6IDA7XG4iKTsKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJmYWNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9N
VGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDY1MDUwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw2ICs1NiwxMyBAQAogICAgIG1faW1wbCA9IGNvcHkuaW1wbCgpID8gbmV3IFdlYkRPTVRl
c3RJbnRlcmZhY2VQcml2YXRlKGNvcHkuaW1wbCgpKSA6IDA7CiB9CiAKK1dlYkRPTVRlc3RJbnRl
cmZhY2UmIFdlYkRPTVRlc3RJbnRlcmZhY2U6Om9wZXJhdG9yPShjb25zdCBXZWJET01UZXN0SW50
ZXJmYWNlJiBjb3B5KQoreworICAgIGRlbGV0ZSBtX2ltcGw7CisgICAgbV9pbXBsID0gY29weS5p
bXBsKCkgPyBuZXcgV2ViRE9NVGVzdEludGVyZmFjZVByaXZhdGUoY29weS5pbXBsKCkpIDogMDsK
KyAgICByZXR1cm4gKnRoaXM7Cit9CisKIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIFdlYkRPTVRl
c3RJbnRlcmZhY2U6OmltcGwoKSBjb25zdAogewogICAgIHJldHVybiBtX2ltcGwgPyBtX2ltcGwt
PmltcGwuZ2V0KCkgOiAwOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0Q2FsbGJhY2suaAkocmV2aXNpb24gNjUwNTApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdENhbGxiYWNrLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICAgICBXZWJET01UZXN0Q2FsbGJhY2soKTsK
ICAgICBleHBsaWNpdCBXZWJET01UZXN0Q2FsbGJhY2soV2ViQ29yZTo6VGVzdENhbGxiYWNrKik7
CiAgICAgV2ViRE9NVGVzdENhbGxiYWNrKGNvbnN0IFdlYkRPTVRlc3RDYWxsYmFjayYpOworICAg
IFdlYkRPTVRlc3RDYWxsYmFjayYgb3BlcmF0b3I9KGNvbnN0IFdlYkRPTVRlc3RDYWxsYmFjayYp
OwogICAgIH5XZWJET01UZXN0Q2FsbGJhY2soKTsKIAogICAgIGJvb2wgY2FsbGJhY2tXaXRoQ2xh
c3MxUGFyYW0oY29uc3QgV2ViRE9NQ2xhc3MxJiBjbGFzczFQYXJhbSk7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50ZXJm
YWNlLmgJKHJldmlzaW9uIDY1MDUwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
Q1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QAogICAgIFdlYkRPTVRlc3RJbnRlcmZhY2UoKTsKICAgICBleHBsaWNpdCBXZWJET01UZXN0SW50
ZXJmYWNlKFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqKTsKICAgICBXZWJET01UZXN0SW50ZXJmYWNl
KGNvbnN0IFdlYkRPTVRlc3RJbnRlcmZhY2UmKTsKKyAgICBXZWJET01UZXN0SW50ZXJmYWNlJiBv
cGVyYXRvcj0oY29uc3QgV2ViRE9NVGVzdEludGVyZmFjZSYpOwogICAgIH5XZWJET01UZXN0SW50
ZXJmYWNlKCk7CiAKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dl
YkRPTVRlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAkocmV2aXNpb24gNjUwNTApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDYgKzYxLDEzIEBACiAgICAgbV9pbXBsID0gY29weS5pbXBsKCkgPyBuZXcgV2ViRE9N
VGVzdE9ialByaXZhdGUoY29weS5pbXBsKCkpIDogMDsKIH0KIAorV2ViRE9NVGVzdE9iaiYgV2Vi
RE9NVGVzdE9iajo6b3BlcmF0b3I9KGNvbnN0IFdlYkRPTVRlc3RPYmomIGNvcHkpCit7CisgICAg
ZGVsZXRlIG1faW1wbDsKKyAgICBtX2ltcGwgPSBjb3B5LmltcGwoKSA/IG5ldyBXZWJET01UZXN0
T2JqUHJpdmF0ZShjb3B5LmltcGwoKSkgOiAwOworICAgIHJldHVybiAqdGhpczsKK30KKwogV2Vi
Q29yZTo6VGVzdE9iaiogV2ViRE9NVGVzdE9iajo6aW1wbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1faW1wbCA/IG1faW1wbC0+aW1wbC5nZXQoKSA6IDA7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdENhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdENhbGxiYWNrLmNwcAko
cmV2aXNpb24gNjUwNTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NVGVzdENhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsMTMgQEAKICAg
ICBtX2ltcGwgPSBjb3B5LmltcGwoKSA/IG5ldyBXZWJET01UZXN0Q2FsbGJhY2tQcml2YXRlKGNv
cHkuaW1wbCgpKSA6IDA7CiB9CiAKK1dlYkRPTVRlc3RDYWxsYmFjayYgV2ViRE9NVGVzdENhbGxi
YWNrOjpvcGVyYXRvcj0oY29uc3QgV2ViRE9NVGVzdENhbGxiYWNrJiBjb3B5KQoreworICAgIGRl
bGV0ZSBtX2ltcGw7CisgICAgbV9pbXBsID0gY29weS5pbXBsKCkgPyBuZXcgV2ViRE9NVGVzdENh
bGxiYWNrUHJpdmF0ZShjb3B5LmltcGwoKSkgOiAwOworICAgIHJldHVybiAqdGhpczsKK30KKwog
V2ViQ29yZTo6VGVzdENhbGxiYWNrKiBXZWJET01UZXN0Q2FsbGJhY2s6OmltcGwoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2ltcGwgPyBtX2ltcGwtPmltcGwuZ2V0KCkgOiAwOwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCShy
ZXZpc2lvbiA2NTA1MCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJE
T01UZXN0T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICAgICBXZWJET01U
ZXN0T2JqKCk7CiAgICAgZXhwbGljaXQgV2ViRE9NVGVzdE9iaihXZWJDb3JlOjpUZXN0T2JqKik7
CiAgICAgV2ViRE9NVGVzdE9iaihjb25zdCBXZWJET01UZXN0T2JqJik7CisgICAgV2ViRE9NVGVz
dE9iaiYgb3BlcmF0b3I9KGNvbnN0IFdlYkRPTVRlc3RPYmomKTsKICAgICB+V2ViRE9NVGVzdE9i
aigpOwogCiAgICAgZW51bSB7CkBAIC0xMDQsMTIgKzEwNSwxOCBAQAogICAgIGludCBjdXN0b21B
dHRyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDdXN0b21BdHRyKGludCk7CiAgICAgV2ViRE9NU3Ry
aW5nIHNjcmlwdFN0cmluZ0F0dHIoKSBjb25zdDsKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAg
ICBpbnQgY29uZGl0aW9uYWxBdHRyMSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29uZGl0aW9uYWxB
dHRyMShpbnQpOworI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25k
aXRpb24yKQogICAgIGludCBjb25kaXRpb25hbEF0dHIyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRD
b25kaXRpb25hbEF0dHIyKGludCk7CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjIpCiAgICAgaW50IGNvbmRpdGlvbmFsQXR0cjMoKSBjb25zdDsKICAg
ICB2b2lkIHNldENvbmRpdGlvbmFsQXR0cjMoaW50KTsKKyNlbmRpZgogICAgIGludCBkZXNjcmlw
dGlvbigpIGNvbnN0OwogICAgIGludCBpZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SWQoaW50KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>