<?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>223916</bug_id>
          
          <creation_ts>2021-03-30 01:29:50 -0700</creation_ts>
          <short_desc>[JSC] Remove warnings about unnecessary operator= for ARMv7Assembler LinkRecord</short_desc>
          <delta_ts>2021-03-31 09:17:29 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1745055</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-03-30 01:29:50 -0700</bug_when>
    <thetext>GCC (10.2.1) complains very often and very verbosely like this:

In file included from WTF/Headers/wtf/RedBlackTree.h:33,
                 from WTF/Headers/wtf/MetaAllocatorHandle.h:33,
                 from ../../Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:30,
                 from ../../Source/JavaScriptCore/interpreter/AbstractPC.h:28,
                 from ../../Source/JavaScriptCore/interpreter/CallFrame.h:25,
                 from ../../Source/JavaScriptCore/API/JSAPIValueWrapper.h:25,
                 from ../../Source/JavaScriptCore/API/APICast.h:29,
                 from ../../Source/JavaScriptCore/API/tests/testapi.cpp:28:
WTF/Headers/wtf/Vector.h: In instantiation of &apos;bool WTF::Vector&lt; &lt;template-parameter-1-1&gt;, &lt;anonymous&gt;, &lt;template-parameter-1-3&gt;, &lt;anonymous&gt;, Malloc&gt;::appendSlowCase(U&amp;&amp;) [with WTF::FailureAction &lt;anonymous&gt; = WTF::FailureAction::Crash; U = JSC::ARMv7Assembler::LinkRecord; T = JSC::ARMv7Assembler::LinkRecord; unsigned int inlineCapacity = 0; OverflowHandler = WTF::UnsafeVectorOverflow; unsigned int minCapacity = 16; Malloc = WTF::FastMalloc]&apos;:
WTF/Headers/wtf/Vector.h:1295:37:   required from &apos;bool WTF::Vector&lt; &lt;template-parameter-1-1&gt;, &lt;anonymous&gt;, &lt;template-parameter-1-3&gt;, &lt;anonymous&gt;, Malloc&gt;::append(U&amp;&amp;) [with WTF::FailureAction &lt;anonymous&gt; = WTF::FailureAction::Crash; U = JSC::ARMv7Assembler::LinkRecord; T = JSC::ARMv7Assembler::LinkRecord; unsigned int inlineCapacity = 0; OverflowHandler = WTF::UnsafeVectorOverflow; unsigned int minCapacity = 16; Malloc = WTF::FastMalloc]&apos;
WTF/Headers/wtf/Vector.h:776:92:   required from &apos;void WTF::Vector&lt; &lt;template-parameter-1-1&gt;, &lt;anonymous&gt;, &lt;template-parameter-1-3&gt;, &lt;anonymous&gt;, Malloc&gt;::append(U&amp;&amp;) [with U = JSC::ARMv7Assembler::LinkRecord; T = JSC::ARMv7Assembler::LinkRecord; unsigned int inlineCapacity = 0; OverflowHandler = WTF::UnsafeVectorOverflow; unsigned int minCapacity = 16; Malloc = WTF::FastMalloc]&apos;
WTF/Headers/wtf/Vector.h:775:69:   required from &apos;void WTF::Vector&lt; &lt;template-parameter-1-1&gt;, &lt;anonymous&gt;, &lt;template-parameter-1-3&gt;, &lt;anonymous&gt;, Malloc&gt;::append(WTF::Vector&lt; &lt;template-parameter-1-1&gt;, &lt;anonymous&gt;, &lt;template-parameter-1-3&gt;, &lt;anonymous&gt;, Malloc&gt;::ValueType&amp;&amp;) [with T = JSC::ARMv7Assembler::LinkRecord; unsigned int inlineCapacity = 0; OverflowHandler = WTF::UnsafeVectorOverflow; unsigned int minCapacity = 16; Malloc = WTF::FastMalloc; WTF::Vector&lt; &lt;template-parameter-1-1&gt;, &lt;anonymous&gt;, &lt;template-parameter-1-3&gt;, &lt;anonymous&gt;, Malloc&gt;::ValueType = JSC::ARMv7Assembler::LinkRecord]&apos;
../../Source/JavaScriptCore/assembler/ARMv7Assembler.h:2198:85:   required from here
WTF/Headers/wtf/Vector.h:1328:5: warning: implicitly-declared &apos;constexpr JSC::ARMv7Assembler::LinkRecord::LinkRecord(const JSC::ARMv7Assembler::LinkRecord&amp;)&apos; is deprecated [-Wdeprecated-copy]
 1328 |     new (NotNull, end()) T(std::forward&lt;U&gt;(*ptr));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:31,
                 from ../../Source/JavaScriptCore/assembler/MacroAssembler.h:35,
                 from ../../Source/JavaScriptCore/jit/GPRInfo.h:28,
                 from ../../Source/JavaScriptCore/jit/RegisterSet.h:30,
                 from ../../Source/JavaScriptCore/jit/JITCode.h:33,
                 from ../../Source/JavaScriptCore/runtime/ExecutableBase.h:32,
                 from ../../Source/JavaScriptCore/runtime/ExecutableBaseInlines.h:28,
                 from ../../Source/JavaScriptCore/bytecode/CallVariant.h:28,
                 from ../../Source/JavaScriptCore/bytecode/CallEdge.h:28,
                 from ../../Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h:30,
                 from ../../Source/JavaScriptCore/bytecode/CallLinkInfo.h:31,
                 from ../../Source/JavaScriptCore/bytecode/CodeBlock.h:34,
                 from ../../Source/JavaScriptCore/interpreter/RegisterInlines.h:28,
                 from ../../Source/JavaScriptCore/interpreter/CallFrameInlines.h:31,
                 from ../../Source/JavaScriptCore/runtime/JSCellInlines.h:32,
                 from ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:35,
                 from ../../Source/JavaScriptCore/API/APICast.h:31,
                 from ../../Source/JavaScriptCore/API/tests/testapi.cpp:28:
../../Source/JavaScriptCore/assembler/ARMv7Assembler.h:449:14: note: because &apos;JSC::ARMv7Assembler::LinkRecord&apos; has user-provided &apos;void JSC::ARMv7Assembler::LinkRecord::operator=(const JSC::ARMv7Assembler::LinkRecord&amp;)&apos;
  449 |         void operator=(const LinkRecord&amp; other)
      |              ^~~~~~~~


The implicit copy constructor will just copy the memory representation for union types (like LinkRecord), which seems adequate in this case. So just remove the user provided copy constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745057</commentid>
    <comment_count>1</comment_count>
      <attachid>424622</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-03-30 01:32:13 -0700</bug_when>
    <thetext>Created attachment 424622
Remove user-provided copy-ctor, v1

v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745246</commentid>
    <comment_count>2</comment_count>
      <attachid>424622</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-30 12:40:13 -0700</bug_when>
    <thetext>Comment on attachment 424622
Remove user-provided copy-ctor, v1

If you are going to remove this then I think you need to do more:

1) Research why it was added, since you are claiming it’s not needed. Let’s make sure we don’t lose the context of why someone thought they needed it. Verify they were mistaken or that something has changed.

2) Remove the unused CopyTypes type and copyTypes data member and remove the use of the union entirely since this is the only place it was used.

If you want to take the GCC warning literally, you could add a copy constructor that uses copyTypes instead of removing the assignment operator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745291</commentid>
    <comment_count>3</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-03-30 13:47:59 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 424622 [details]
&gt; Remove user-provided copy-ctor, v1
&gt; 
&gt; If you are going to remove this then I think you need to do more:
&gt; 
&gt; 1) Research why it was added, since you are claiming it’s not needed. Let’s
&gt; make sure we don’t lose the context of why someone thought they needed it.
&gt; Verify they were mistaken or that something has changed.

Thank you, this was actually the right thing to do first. This was introduced way back in 2012 as an optimization, the claim being it&apos;s a significant speed-up over the compiler-provided default. See https://bugs.webkit.org/show_bug.cgi?id=90930

I think this may very well be still the case, perhaps I should try to measure it again, but then I&apos;d say that we at least:

- Should add a comment about it, with a link to the bug.
- Find a way to shut up GCC about it, maybe by doing what you suggest in the last comment.
- If we leave the operator in place, maybe we might want to fix the operator (at least) in ARMv7, since it&apos;s using a &apos;void&apos; return type instead of the more common/correct reference type? The version in the ARM64 assembler file is fine.

&gt; 
&gt; 2) Remove the unused CopyTypes type and copyTypes data member and remove the
&gt; use of the union entirely since this is the only place it was used.
&gt; 
&gt; If you want to take the GCC warning literally, you could add a copy
&gt; constructor that uses copyTypes instead of removing the assignment operator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745296</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-30 13:57:58 -0700</bug_when>
    <thetext>I think we should interpret GCC&apos;s warning as &quot;if you had a reason to override operator= then you also need to override copy constructor for the same reason&quot;, which seems correct!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745337</commentid>
    <comment_count>5</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-03-30 14:45:09 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; I think we should interpret GCC&apos;s warning as &quot;if you had a reason to
&gt; override operator= then you also need to override copy constructor for the
&gt; same reason&quot;, which seems correct!

That makes sense to me, I was thrown off by the doc:

       -Wdeprecated-copy (C++ and Objective-C++ only)
           Warn that the implicit declaration of a copy constructor or copy assignment operator is deprecated if the class has a user-provided copy constructor or copy
           assignment operator, in C++11 and up.  This warning is enabled by -Wextra.  With -Wdeprecated-copy-dtor, also deprecate if the class has a user-provided
           destructor.

I can read that as saying we&apos;d still be warned if any, *or both*, are present? I get now it can be read as you suggest (if you define one, you almost surely want to define the other), but the language is a bit confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745345</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-30 14:54:30 -0700</bug_when>
    <thetext>Yes, I agree their wording is confusing, confusingly repetitive, but I’m pretty sure my reading of it is correct: &quot;user-provided for both or neither&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745608</commentid>
    <comment_count>7</comment_count>
      <attachid>424766</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-03-31 06:22:18 -0700</bug_when>
    <thetext>Created attachment 424766
Remove warnings for LinkRecord, v2

v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745640</commentid>
    <comment_count>8</comment_count>
      <attachid>424766</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-31 09:12:23 -0700</bug_when>
    <thetext>Comment on attachment 424766
Remove warnings for LinkRecord, v2

I would say, &quot;not as fast&quot; rather than &quot;not optimal&quot;. I’m not sure this implementation is &quot;optimal&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745642</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-31 09:15:21 -0700</bug_when>
    <thetext>Committed r275285: &lt;https://commits.webkit.org/r275285&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424766.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745644</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-31 09:17:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/76055800&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424622</attachid>
            <date>2021-03-30 01:32:13 -0700</date>
            <delta_ts>2021-03-31 06:22:18 -0700</delta_ts>
            <desc>Remove user-provided copy-ctor, v1</desc>
            <filename>0001-JSC-Remove-unnecessary-copy-constructor-for-ARMv7Ass.patch</filename>
            <type>text/plain</type>
            <size>2570</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA1ODIyNTIzNGRiYzIyMTJiZGE5OWQ4ZTE3MjYyNjM5NTNmYmY5ZDBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogVHVlLCAzMCBNYXIgMjAyMSAxMDozMTo0MSArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBjb3B5IGNvbnN0cnVjdG9yIGZvciBBUk12
N0Fzc2VtYmxlcgogTGlua1JlY29yZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIzOTE2CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoZSBpbXBsaWNpdCBj
b3B5IGNvbnN0cnVjdG9yIHdpbGwgZG8gdGhlIHNhbWUgdGhpbmcgdGhhbiB0aGUgdXNlcgpwcm92
aWRlZCBvbmUsIGFuZCByZWNlbnQgR0NDIHZlcnNpb25zIGNvbXBsYWluIGxvdWRseSBhYm91dCB0
aGlzLgoKKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKEpTQzo6QVJNdjdBc3NlbWJsZXI6
OkxpbmtSZWNvcmQ6OkxpbmtSZWNvcmQpOgooSlNDOjpBUk12N0Fzc2VtYmxlcjo6TGlua1JlY29y
ZDo6b3BlcmF0b3I9KTogRGVsZXRlZC4KLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysrKysrKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIHwgIDYgLS0tLS0tCiAyIGZpbGVzIGNo
YW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggMDlkYmE0OThmYWViLi45NzdkMjUyNDExYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTAzLTMwICBYYW4gTG9wZXogIDx4YW5AaWdh
bGlhLmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgdW5uZWNlc3NhcnkgY29weSBjb25zdHJ1
Y3RvciBmb3IgQVJNdjdBc3NlbWJsZXIgTGlua1JlY29yZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxpY2l0IGNvcHkgY29uc3RydWN0b3Ig
d2lsbCBkbyB0aGUgc2FtZSB0aGluZyB0aGFuIHRoZSB1c2VyCisgICAgICAgIHByb3ZpZGVkIG9u
ZSwgYW5kIHJlY2VudCBHQ0MgdmVyc2lvbnMgY29tcGxhaW4gbG91ZGx5IGFib3V0IHRoaXMuCisK
KyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJN
djdBc3NlbWJsZXI6OkxpbmtSZWNvcmQ6OkxpbmtSZWNvcmQpOgorICAgICAgICAoSlNDOjpBUk12
N0Fzc2VtYmxlcjo6TGlua1JlY29yZDo6b3BlcmF0b3I9KTogRGVsZXRlZC4KKwogMjAyMS0wMy0y
OSAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSBoZWxw
ZXIgbWV0aG9kIHdoZW4gcG9zc2libGUgdG8gc3RvcmUgZGF0YSBpbiB0aGUgY2FsbGZyYW1lIGhl
YWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxl
ci5oCmluZGV4IGYzZjdkZDI5ZDczYy4uMzQ1MDA1Y2ZkMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC00NDYsMTIgKzQ0Niw2
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGRhdGEucmVhbFR5cGVzLm1fbGlua1R5cGUgPSBMaW5r
SW52YWxpZDsKICAgICAgICAgICAgIGRhdGEucmVhbFR5cGVzLm1fY29uZGl0aW9uID0gY29uZGl0
aW9uOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IExpbmtSZWNvcmQm
IG90aGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBkYXRhLmNvcHlUeXBlcy5jb250ZW50WzBd
ID0gb3RoZXIuZGF0YS5jb3B5VHlwZXMuY29udGVudFswXTsKLSAgICAgICAgICAgIGRhdGEuY29w
eVR5cGVzLmNvbnRlbnRbMV0gPSBvdGhlci5kYXRhLmNvcHlUeXBlcy5jb250ZW50WzFdOwotICAg
ICAgICAgICAgZGF0YS5jb3B5VHlwZXMuY29udGVudFsyXSA9IG90aGVyLmRhdGEuY29weVR5cGVz
LmNvbnRlbnRbMl07Ci0gICAgICAgIH0KICAgICAgICAgaW50cHRyX3QgZnJvbSgpIGNvbnN0IHsg
cmV0dXJuIGRhdGEucmVhbFR5cGVzLm1fZnJvbTsgfQogICAgICAgICB2b2lkIHNldEZyb20oaW50
cHRyX3QgZnJvbSkgeyBkYXRhLnJlYWxUeXBlcy5tX2Zyb20gPSBmcm9tOyB9CiAgICAgICAgIGlu
dHB0cl90IHRvKCkgY29uc3QgeyByZXR1cm4gZGF0YS5yZWFsVHlwZXMubV90bzsgfQotLSAKMi4z
MS4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424766</attachid>
            <date>2021-03-31 06:22:18 -0700</date>
            <delta_ts>2021-03-31 09:15:22 -0700</delta_ts>
            <desc>Remove warnings for LinkRecord, v2</desc>
            <filename>0001-JSC-Remove-warnings-about-unnecessary-operator-for-A.patch</filename>
            <type>text/plain</type>
            <size>4179</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAxZTEyMmFmZjg5ODFkM2RhNjEyMDU1ZDU4MzY1MjMwYmYzYmI0YjJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogV2VkLCAzMSBNYXIgMjAyMSAxNToxMjozMCArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIFJlbW92ZSB3YXJuaW5ncyBhYm91dCB1bm5lY2Vzc2FyeSBvcGVyYXRvcj0g
Zm9yCiBBUk12N0Fzc2VtYmxlciBMaW5rUmVjb3JkIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjM5MTYKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKTWFueSB5
ZWFycyBhZ28gd2UgZGVmaW5lZCBhbiBhc3NpZ25tZW50IG9wZXJhdG9yIGZvciBMaW5rUmVjb3Jk
IGluCm9yZGVyIHRvIHNwZWVkIHVwIGJ1aWxkIHRpbWVzIChzZWUgIzkwOTMwKS4gUmVjZW50IEdD
QyB2ZXJzaW9ucwp0ZWxsIHVzIHRoYXQgaWYgd2UgZG8gdGhhdCB3ZSBhbG1vc3QgY2VydGFpbmx5
IHdhbnQgdG8gZGVmaW5lIGEKY29weSBjb25zdHJ1Y3RvciB0b28uIFRoZSBBUk02NEFzc2VtYmxl
ciBmaWxlIGFscmVhZHkgZG9lcyBpdCwgc28KZG8gaXQgdG9vIGZvciBBUk12NyB0byByZW1vdmUg
dGhlIHdhcm5pbmdzLgoKKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKiBhc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaDoKKEpTQzo6QVJNdjdBc3NlbWJsZXI6OkxpbmtSZWNvcmQ6OkxpbmtS
ZWNvcmQpOgooSlNDOjpBUk12N0Fzc2VtYmxlcjo6TGlua1JlY29yZDo6b3BlcmF0b3I9KToKLS0t
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgIHwgMTggKysr
KysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1i
bGVyLmggIHwgIDMgKysrCiAuLi4vSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1i
bGVyLmggIHwgMTQgKysrKysrKysrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9u
cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmMDNjMmE5
NjFjYTEuLmZhOTg1YzVjODQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMjEtMDMtMzEgIFhhbiBMb3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtKU0NdIFJlbW92ZSB3YXJuaW5ncyBhYm91dCB1bm5lY2Vzc2FyeSBvcGVyYXRvcj0gZm9yIEFS
TXY3QXNzZW1ibGVyIExpbmtSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMzkxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1hbnkgeWVhcnMgYWdvIHdlIGRlZmluZWQgYW4gYXNzaWdubWVudCBv
cGVyYXRvciBmb3IgTGlua1JlY29yZCBpbgorICAgICAgICBvcmRlciB0byBzcGVlZCB1cCBidWls
ZCB0aW1lcyAoc2VlICM5MDkzMCkuIFJlY2VudCBHQ0MgdmVyc2lvbnMKKyAgICAgICAgdGVsbCB1
cyB0aGF0IGlmIHdlIGRvIHRoYXQgd2UgYWxtb3N0IGNlcnRhaW5seSB3YW50IHRvIGRlZmluZSBh
CisgICAgICAgIGNvcHkgY29uc3RydWN0b3IgdG9vLiBUaGUgQVJNNjRBc3NlbWJsZXIgZmlsZSBh
bHJlYWR5IGRvZXMgaXQsIHNvCisgICAgICAgIGRvIGl0IHRvbyBmb3IgQVJNdjcgdG8gcmVtb3Zl
IHRoZSB3YXJuaW5ncy4KKworICAgICAgICAqIGFzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oOgor
ICAgICAgICAqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12
N0Fzc2VtYmxlcjo6TGlua1JlY29yZDo6TGlua1JlY29yZCk6CisgICAgICAgIChKU0M6OkFSTXY3
QXNzZW1ibGVyOjpMaW5rUmVjb3JkOjpvcGVyYXRvcj0pOgorCiAyMDIxLTAzLTMxICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBjb25z
dHJ1Y3RvcnMgb2YgRVM2IGNvbGxlY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKaW5kZXggOTU4MzFjNDM3MTEwLi4yY2M1M2M4Y2Nk
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3Nl
bWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1i
bGVyLmgKQEAgLTM4Myw2ICszODMsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBkYXRhLnJlYWxU
eXBlcy5tX2JpdE51bWJlciA9IGJpdE51bWJlcjsKICAgICAgICAgICAgIGRhdGEucmVhbFR5cGVz
Lm1fY29tcGFyZVJlZ2lzdGVyID0gY29tcGFyZVJlZ2lzdGVyOwogICAgICAgICB9CisgICAgICAg
IC8vIFdlIGFyZSBkZWZpbmluZyBhIGNvcHkgY29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3Bl
cmF0b3IKKyAgICAgICAgLy8gYmVjYXVzZSB0aGUgb25lcyBwcm92aWRlZCBieSB0aGUgY29tcGls
ZXIgYXJlIG5vdAorICAgICAgICAvLyBvcHRpbWFsLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkwOTMwCiAgICAgICAgIExpbmtSZWNvcmQoY29uc3QgTGlua1Jl
Y29yZCYgb3RoZXIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGRhdGEuY29weVR5cGVzID0gb3Ro
ZXIuZGF0YS5jb3B5VHlwZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0FSTXY3QXNzZW1ibGVyLmgKaW5kZXggZjNmN2RkMjlkNzNjLi4xYzhjZDBjZTRmZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAg
LTQ0NiwxMSArNDQ2LDE3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGRhdGEucmVhbFR5cGVzLm1f
bGlua1R5cGUgPSBMaW5rSW52YWxpZDsKICAgICAgICAgICAgIGRhdGEucmVhbFR5cGVzLm1fY29u
ZGl0aW9uID0gY29uZGl0aW9uOwogICAgICAgICB9Ci0gICAgICAgIHZvaWQgb3BlcmF0b3I9KGNv
bnN0IExpbmtSZWNvcmQmIG90aGVyKQorICAgICAgICAvLyBXZSBhcmUgZGVmaW5pbmcgYSBjb3B5
IGNvbnN0cnVjdG9yIGFuZCBhc3NpZ25tZW50IG9wZXJhdG9yCisgICAgICAgIC8vIGJlY2F1c2Ug
dGhlIG9uZXMgcHJvdmlkZWQgYnkgdGhlIGNvbXBpbGVyIGFyZSBub3QKKyAgICAgICAgLy8gb3B0
aW1hbC4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDkzMAor
ICAgICAgICBMaW5rUmVjb3JkKGNvbnN0IExpbmtSZWNvcmQmIG90aGVyKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBkYXRhLmNvcHlUeXBlcy5jb250ZW50WzBdID0gb3RoZXIuZGF0YS5jb3B5VHlw
ZXMuY29udGVudFswXTsKLSAgICAgICAgICAgIGRhdGEuY29weVR5cGVzLmNvbnRlbnRbMV0gPSBv
dGhlci5kYXRhLmNvcHlUeXBlcy5jb250ZW50WzFdOwotICAgICAgICAgICAgZGF0YS5jb3B5VHlw
ZXMuY29udGVudFsyXSA9IG90aGVyLmRhdGEuY29weVR5cGVzLmNvbnRlbnRbMl07CisgICAgICAg
ICAgICBkYXRhLmNvcHlUeXBlcyA9IG90aGVyLmRhdGEuY29weVR5cGVzOworICAgICAgICB9Cisg
ICAgICAgIExpbmtSZWNvcmQmIG9wZXJhdG9yPShjb25zdCBMaW5rUmVjb3JkJiBvdGhlcikKKyAg
ICAgICAgeworICAgICAgICAgICAgZGF0YS5jb3B5VHlwZXMgPSBvdGhlci5kYXRhLmNvcHlUeXBl
czsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKICAgICAgICAgfQogICAgICAgICBpbnRwdHJf
dCBmcm9tKCkgY29uc3QgeyByZXR1cm4gZGF0YS5yZWFsVHlwZXMubV9mcm9tOyB9CiAgICAgICAg
IHZvaWQgc2V0RnJvbShpbnRwdHJfdCBmcm9tKSB7IGRhdGEucmVhbFR5cGVzLm1fZnJvbSA9IGZy
b207IH0KLS0gCjIuMzEuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>