<?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>169714</bug_id>
          
          <creation_ts>2017-03-15 15:48:19 -0700</creation_ts>
          <short_desc>[jsc] Add missing MacroAssemblerMIPS::or32() implementation</short_desc>
          <delta_ts>2017-04-11 10:04:04 -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>Other</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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="Guillaume Emont">guijemont</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>guijemont</cc>
    
    <cc>jbriance</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1288315</commentid>
    <comment_count>0</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2017-03-15 15:48:19 -0700</bug_when>
    <thetext>We miss MacroAssemblerMIPS::or32(TrustedImm32, Address).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288329</commentid>
    <comment_count>1</comment_count>
      <attachid>304573</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2017-03-15 16:06:40 -0700</bug_when>
    <thetext>Created attachment 304573
Patch

The patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293625</commentid>
    <comment_count>2</comment_count>
      <attachid>304573</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-04-03 05:38:16 -0700</bug_when>
    <thetext>Comment on attachment 304573
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=304573&amp;action=review

Reviewing informally: The comparisons should treat immediate value
zero as a 16-bit value which gets embedded in an “ori” instruction.
Other than that looks good overall.

There is the thing that I would prefer using constants from “stdint.h” or
masking with 0xFFFF to check for values outside of the 16-bit range, but
the rest of the code in the file compares directly against the numeric
values, so I don&apos;t have a strong feeling about that. It might be a good
idea to do change the code to use [U]INTx_{MIN,MAX} or bitmaks, as a
separate patch. WDYT?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:448
&gt; +        if (address.offset &gt;= -32768 &amp;&amp; address.offset &lt;= 32767

Personally, I would write this condition as...

      if (address.offset &amp; 0xFFFF == 0 &amp;&amp; ...)

...because when reading this form it makes me think “this checks whether
the upper 16-bits are unset”. On the other hand, comparisons against the
integral values keep me wondering “wait, why is there a magic number here?”.

I have no strong opinion about whether to use the bitmask version or the
integer comparison, but if you would rather keep the integer comparison,
please use INT16_MIN/INT16_MAX, which makes it more explicit that values
outside the 16-bit integer range are being handled:

       if (address.offset &gt;= INT16_MIN &amp;&amp; address.offset &lt;= INT16_MAX &amp;&amp; ...)

&gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:457
&gt; +            if (imm.m_value &gt; 0 &amp;&amp; imm.m_value &lt;= 65535 &amp;&amp; !m_fixedWidth)

This should be “greater or equal to zero”, not just ”greater than zero”:

     if (imm.m_value &gt;= 0 &amp;&amp; imm.m_value &lt;= UINT16_MAX ...)
  or if (imm.m_value &amp; 0xFFFF == 0 ...)

If the immediate value is equal to zero, emitting the code for ORing
could even be skipped altogether. Though I would do that separately
on another patch.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:477
&gt; +            if (imm.m_value &gt; 0 &amp;&amp; imm.m_value &lt;= 65535 &amp;&amp; !m_fixedWidth)

Ditto: if (imm.m_value &gt;= 0 &amp;&amp; imm.m_value &lt;= UINT16_MAX ...)
                       ^^
                 greater or equal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295097</commentid>
    <comment_count>3</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2017-04-06 16:08:14 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #2)
&gt; Comment on attachment 304573 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304573&amp;action=review
&gt; 
&gt; Reviewing informally: The comparisons should treat immediate value
&gt; zero as a 16-bit value which gets embedded in an “ori” instruction.
&gt; Other than that looks good overall.
&gt; 
&gt; There is the thing that I would prefer using constants from “stdint.h” or
&gt; masking with 0xFFFF to check for values outside of the 16-bit range, but
&gt; the rest of the code in the file compares directly against the numeric
&gt; values, so I don&apos;t have a strong feeling about that. It might be a good
&gt; idea to do change the code to use [U]INTx_{MIN,MAX} or bitmaks, as a
&gt; separate patch. WDYT?
&gt; 
&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:448
&gt; &gt; +        if (address.offset &gt;= -32768 &amp;&amp; address.offset &lt;= 32767
&gt; 
&gt; Personally, I would write this condition as...
&gt; 
&gt;       if (address.offset &amp; 0xFFFF == 0 &amp;&amp; ...)
&gt; 
&gt; ...because when reading this form it makes me think “this checks whether
&gt; the upper 16-bits are unset”. On the other hand, comparisons against the
&gt; integral values keep me wondering “wait, why is there a magic number here?”.
&gt; 
&gt; I have no strong opinion about whether to use the bitmask version or the
&gt; integer comparison, but if you would rather keep the integer comparison,
&gt; please use INT16_MIN/INT16_MAX, which makes it more explicit that values
&gt; outside the 16-bit integer range are being handled:
&gt; 
&gt;        if (address.offset &gt;= INT16_MIN &amp;&amp; address.offset &lt;= INT16_MAX &amp;&amp; ...)
&gt; 
Indeed, this would be clearer, especially with the bitmask I&apos;d think. I&apos;ll create a separate bug and try to address that for the whole file.


&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:457
&gt; &gt; +            if (imm.m_value &gt; 0 &amp;&amp; imm.m_value &lt;= 65535 &amp;&amp; !m_fixedWidth)
&gt; 
&gt; This should be “greater or equal to zero”, not just ”greater than zero”:
&gt; 
&gt;      if (imm.m_value &gt;= 0 &amp;&amp; imm.m_value &lt;= UINT16_MAX ...)
&gt;   or if (imm.m_value &amp; 0xFFFF == 0 ...)
&gt; 
&gt; If the immediate value is equal to zero, emitting the code for ORing
&gt; could even be skipped altogether. Though I would do that separately
&gt; on another patch.
I am cooking a patch that address this issues. Here again, I just copy-pasted from another version of the function, and that issue is a bit everywhere in the file and deserves its own bug I guess.

&gt; 
&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:477
&gt; &gt; +            if (imm.m_value &gt; 0 &amp;&amp; imm.m_value &lt;= 65535 &amp;&amp; !m_fixedWidth)
&gt; 
&gt; Ditto: if (imm.m_value &gt;= 0 &amp;&amp; imm.m_value &lt;= UINT16_MAX ...)
&gt;                        ^^
&gt;                  greater or equal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295103</commentid>
    <comment_count>4</comment_count>
      <attachid>304573</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2017-04-06 16:20:42 -0700</bug_when>
    <thetext>Comment on attachment 304573
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=304573&amp;action=review

&gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:481
&gt; +                m_assembler.addu(dataTempRegister, dataTempRegister, immTempRegister);

Wow! I did not pay attention when doing that. This obviously should be an orInsn not an addu! Will also fix in the new version. The fact that this mistake was not obvious when looking at test results makes me think that this code path (or the whole function) might never be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295110</commentid>
    <comment_count>5</comment_count>
      <attachid>306436</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2017-04-06 16:49:17 -0700</bug_when>
    <thetext>Created attachment 306436
Patch

Patch with comments addressed. I am currently testing it to check it does not break anything (tests take about 10h to run, and bot is testing another revision before).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295378</commentid>
    <comment_count>6</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2017-04-07 10:31:28 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #5)
&gt; Created attachment 306436 [details]
&gt; Patch
&gt; 
&gt; Patch with comments addressed. I am currently testing it to check it does
&gt; not break anything (tests take about 10h to run, and bot is testing another
&gt; revision before).

And the test ran: this patch did not introduce any new crash, so I believe it&apos;s good to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295980</commentid>
    <comment_count>7</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-04-10 06:52:09 -0700</bug_when>
    <thetext>\o/(In reply to Guillaume Emont from comment #6)
&gt; (In reply to Guillaume Emont from comment #5)
&gt; &gt; Created attachment 306436 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Patch with comments addressed. I am currently testing it to check it does
&gt; &gt; not break anything (tests take about 10h to run, and bot is testing another
&gt; &gt; revision before).
&gt; 
&gt; And the test ran: this patch did not introduce any new crash, so I believe
&gt; it&apos;s good to go.

\o/

Informal r+/cq+ from me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296451</commentid>
    <comment_count>8</comment_count>
      <attachid>306436</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-11 09:59:31 -0700</bug_when>
    <thetext>Comment on attachment 306436
Patch

This is a rubber stamp since I don&apos;t understand any of it, but if Adrian says it&apos;s OK then let&apos;s do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296454</commentid>
    <comment_count>9</comment_count>
      <attachid>306436</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-11 10:04:03 -0700</bug_when>
    <thetext>Comment on attachment 306436
Patch

Clearing flags on attachment: 306436

Committed r215237: &lt;http://trac.webkit.org/changeset/215237&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296455</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-11 10:04:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304573</attachid>
            <date>2017-03-15 16:06:40 -0700</date>
            <delta_ts>2017-04-06 16:49:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169714-20170315180639.patch</filename>
            <type>text/plain</type>
            <size>3257</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
N2M4Yjg2Y2ZkNGFhMTIzNThjMTU5YTk1NWQ1MWI0OGUwYmZlMTQyLi5lZDliOGUxZWNiZThiZGQx
NTU0YWM4MDc3MzdlMmE3OWRjNjY3NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxNiBAQAogMjAxNy0wMy0xNSAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CiAKKyAgICAgICAgW2pzY10gQWRkIG1pc3NpbmcgTWFjcm9Bc3NlbWJsZXJNSVBTOjpv
cjMyKCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om9yMzIpOgorICAgICAgICBBZGRlZCBvcjMyKFRydXN0
ZWRJbW0zMiwgQWRkcmVzcykuCisKKzIwMTctMDMtMTUgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWpl
bW9udEBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtqc2NdIEFkZCBNYWNyb0Fzc2VtYmxlck1JUFM6
OnN0b3JlRmVuY2UoKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY5NzA1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IGY1NjBkMDU4MmNkMzg1NjcyZTkxNDZhNjNhMTRj
ZWZkNTRjYWRjODkuLmU1YmZjYWZiZjgyY2NjYjA1MzkwNDQ2NDBmMWIzNzBjODA1YTdhNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJN
SVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ck1JUFMuaApAQCAtNDQzLDYgKzQ0Myw0NyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMzIoZGF0
YVRlbXBSZWdpc3RlciwgZGVzdC5tX3B0cik7CiAgICAgfQogCisgICAgdm9pZCBvcjMyKFRydXN0
ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIGlmIChhZGRyZXNz
Lm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKKyAgICAgICAgICAg
ICYmICFtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgIGx3ICAg
ICAgICBkYXRhVGVtcCwgb2Zmc2V0KGJhc2UpCisgICAgICAgICAgICAgIGxpICAgICAgICBpbW1U
ZW1wLCBpbW0KKyAgICAgICAgICAgICAgb3IgICAgICAgIGRhdGFUZW1wLCBkYXRhVGVtcCwgaW1t
VGVtcAorICAgICAgICAgICAgICBzdyAgICAgICAgZGF0YVRlbXAsIG9mZnNldChiYXNlKQorICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICAgICAgaWYgKGltbS5tX3Zh
bHVlID4gMCAmJiBpbW0ubV92YWx1ZSA8PSA2NTUzNSAmJiAhbV9maXhlZFdpZHRoKQorICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLm9yaShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyLCBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBt
b3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5v
ckluc24oZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVn
aXN0ZXIsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgbHVpICAgICAgIGFkZHJUZW1wLCAob2Zmc2V0
ICsgMHg4MDAwKSA+PiAxNgorICAgICAgICAgICAgICBhZGR1ICAgICAgYWRkclRlbXAsIGFkZHJU
ZW1wLCBiYXNlCisgICAgICAgICAgICAgIGx3ICAgICAgICBkYXRhVGVtcCwgKG9mZnNldCAmIDB4
ZmZmZikoYWRkclRlbXApCisgICAgICAgICAgICAgIGxpICAgICAgICBpbW10ZW1wLCBpbW0KKyAg
ICAgICAgICAgICAgb3IgICAgICAgIGRhdGFUZW1wLCBkYXRhVGVtcCwgaW1tVGVtcAorICAgICAg
ICAgICAgICBzdyAgICAgICAgZGF0YVRlbXAsIChvZmZzZXQgJiAweGZmZmYpKGFkZHJUZW1wKQor
ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx1aShhZGRyVGVtcFJlZ2lz
dGVyLCAoYWRkcmVzcy5vZmZzZXQgKyAweDgwMDApID4+IDE2KTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZHUoYWRkclRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcy5i
YXNlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKworICAgICAgICAgICAgaWYgKGltbS5tX3Zh
bHVlID4gMCAmJiBpbW0ubV92YWx1ZSA8PSA2NTUzNSAmJiAhbV9maXhlZFdpZHRoKQorICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLm9yaShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyLCBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBt
b3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5h
ZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lz
dGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0KKyAgICB9
CisKICAgICB2b2lkIHJzaGlmdDMyKFJlZ2lzdGVySUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnNyYXYoZGVzdCwgZGVzdCwgc2hpZnRB
bW91bnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306436</attachid>
            <date>2017-04-06 16:49:17 -0700</date>
            <delta_ts>2017-04-11 10:04:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169714-20170406184917.patch</filename>
            <type>text/plain</type>
            <size>3196</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YTNkMzM3ZjA0OWFiOGFiNjk1MTE4NTQ3ZDg3MmE3ZWVjZjljYzhmLi44ZWRiYjIwMGJmYWZiZjhm
YTY1ZTE2MzE3ZTRiNzVhNTUyZjQ1YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMy0xNSAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgW2pzY10gQWRkIG1pc3NpbmcgTWFjcm9Bc3NlbWJsZXJNSVBTOjpv
cjMyKCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om9yMzIpOgorICAgICAgICBBZGRlZCBvcjMyKFRydXN0
ZWRJbW0zMiwgQWRkcmVzcykuCisKIDIwMTctMDQtMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBCMyAtTzEgc2hvdWxkIGdlbmVyYXRlIGJldHRlciBjb2RlIHRo
YW4gLU8wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlck1JUFMuaAppbmRleCA0NDM4ZWNjMzUzYjkzMWIxMGQ3MWI5MTAzZmNhMTZkYmU2OTRk
OWNhLi45MmNhZTc2OGY4ZGMyYTkzNDNiM2Y1MGVlZmUzMmVmNWM1NDk0ZmZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgK
QEAgLTQ0Myw2ICs0NDMsNDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVn
aXN0ZXIsIGRlc3QubV9wdHIpOwogICAgIH0KIAorICAgIHZvaWQgb3IzMihUcnVzdGVkSW1tMzIg
aW1tLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQg
Pj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CisgICAgICAgICAgICAmJiAhbV9m
aXhlZFdpZHRoKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICBsdyAgICAgICAgZGF0
YVRlbXAsIG9mZnNldChiYXNlKQorICAgICAgICAgICAgICBsaSAgICAgICAgaW1tVGVtcCwgaW1t
CisgICAgICAgICAgICAgIG9yICAgICAgICBkYXRhVGVtcCwgZGF0YVRlbXAsIGltbVRlbXAKKyAg
ICAgICAgICAgICAgc3cgICAgICAgIGRhdGFUZW1wLCBvZmZzZXQoYmFzZSkKKyAgICAgICAgICAg
ICovCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
LmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAw
ICYmIGltbS5tX3ZhbHVlIDw9IDY1NTM1ICYmICFtX2ZpeGVkV2lkdGgpCisgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIub3JpKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGlt
bS5tX3ZhbHVlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1vdmUoaW1t
LCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm9ySW5zbihk
YXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3Rlciwg
YWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAvKgorICAgICAgICAgICAgICBsdWkgICAgICAgYWRkclRlbXAsIChvZmZzZXQgKyAweDgw
MDApID4+IDE2CisgICAgICAgICAgICAgIGFkZHUgICAgICBhZGRyVGVtcCwgYWRkclRlbXAsIGJh
c2UKKyAgICAgICAgICAgICAgbHcgICAgICAgIGRhdGFUZW1wLCAob2Zmc2V0ICYgMHhmZmZmKShh
ZGRyVGVtcCkKKyAgICAgICAgICAgICAgbGkgICAgICAgIGltbXRlbXAsIGltbQorICAgICAgICAg
ICAgICBvciAgICAgICAgZGF0YVRlbXAsIGRhdGFUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAg
IHN3ICAgICAgICBkYXRhVGVtcCwgKG9mZnNldCAmIDB4ZmZmZikoYWRkclRlbXApCisgICAgICAg
ICAgICAqLworICAgICAgICAgICAgbV9hc3NlbWJsZXIubHVpKGFkZHJUZW1wUmVnaXN0ZXIsIChh
ZGRyZXNzLm9mZnNldCArIDB4ODAwMCkgPj4gMTYpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkdShhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmJhc2UpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdp
c3RlciwgYWRkcmVzcy5vZmZzZXQpOworCisgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0g
MCAmJiBpbW0ubV92YWx1ZSA8PSA2NTUzNSAmJiAhbV9maXhlZFdpZHRoKQorICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLm9yaShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBp
bW0ubV92YWx1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtb3ZlKGlt
bSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5vckluc24o
ZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIs
IGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mub2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIHZvaWQgcnNoaWZ0MzIoUmVnaXN0ZXJJRCBzaGlmdEFtb3VudCwgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3JhdihkZXN0LCBkZXN0LCBzaGlmdEFtb3Vu
dCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>