<?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>151905</bug_id>
          
          <creation_ts>2015-12-04 20:45:39 -0800</creation_ts>
          <short_desc>[JSC] FTLB3Output generates some invalid ZExt32</short_desc>
          <delta_ts>2015-12-19 11:02:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1146574</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-04 20:45:39 -0800</bug_when>
    <thetext>[JSC] FTLB3Output generates some invalid ZExt32</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146582</commentid>
    <comment_count>1</comment_count>
      <attachid>266702</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-04 21:09:25 -0800</bug_when>
    <thetext>Created attachment 266702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146596</commentid>
    <comment_count>2</comment_count>
      <attachid>266702</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-04 21:46:08 -0800</bug_when>
    <thetext>Comment on attachment 266702
Patch

Can you pick a consistent naming convention? I like zeroExtFooToBar. The zeroExtPtr and zeroExtTo32 feel like they should be renamed. 

I was previously hoping that zeroExt could continue to take a type as an argument and the B3 output could be smart enough to avoid emitting it when the requested type matches the input type. That feels like the better abstraction since we already know the type of the input and having one method is probably better than having three.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146597</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-04 21:49:10 -0800</bug_when>
    <thetext>The reason for splitting into 3 methods is to make the cleanup easy later.
Find any use, delete the call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146603</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-04 22:22:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; The reason for splitting into 3 methods is to make the cleanup easy later.
&gt; Find any use, delete the call.

But this puts us in an inconsistent state.  The current approach to this problem in other casts, like castToInt32, is:

    LValue castToInt32(LValue value)
    {
        return value-&gt;type() == B3::Int32 ? value :
            m_block-&gt;appendNew&lt;B3::Value&gt;(m_proc, B3::Trunc, origin(), value);
    }

Why wouldn&apos;t that work here?  You could just say:

    LValue zeroExt(LValue value, LType type)
    {
        return type == value-&gt;type() ? value : m_block-&gt;appendNew&lt;B3::Value&gt;(m_proc, B3::ZExt32, type, origin(), value);
    }

If we don&apos;t want to do that for zeroExt(), then I think that your patch should also change how castToInt32() works, so that we are consistent.

But I think that it makes sense for FTL::Output to abstract casts using the existing zeroExt(Value, Type) API.  I think that this one API covers all of the things that your new functions do, and we could leave it this way forever.  Even if we get rid of LLVM, a zeroExt(Value, Type) operation still makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150537</commentid>
    <comment_count>5</comment_count>
      <attachid>267687</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-19 08:32:46 -0800</bug_when>
    <thetext>Created attachment 267687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150554</commentid>
    <comment_count>6</comment_count>
      <attachid>267687</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-19 11:02:17 -0800</bug_when>
    <thetext>Comment on attachment 267687
Patch

Clearing flags on attachment: 267687

Committed r194315: &lt;http://trac.webkit.org/changeset/194315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150555</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-19 11:02:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266702</attachid>
            <date>2015-12-04 21:09:25 -0800</date>
            <delta_ts>2015-12-19 08:32:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151905-20151204210859.patch</filename>
            <type>text/plain</type>
            <size>9454</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ODE0NjU2MjUwNGIzMjBjZjYwOGUxMmUxMWI4ZmJmZWQxMzZjZDlhLi45ZmI5NjRhMmZlOTgzMGUx
MDk4NzQ5ZDU0YjViY2RlMjVhODFlNDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0MiBAQAogMjAxNS0xMi0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KIAorICAgICAgICBbSlNDXSBGVExCM091dHB1dCBnZW5lcmF0ZXMgc29tZSBpbnZhbGlk
IFpFeHQzMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUxOTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RlRMTG93ZXJERkdUb0xMVk0gY2FsbHMgemVyb0V4dCgpIHRvIGludDMyIGluIHNvbWUgY2FzZXMu
CisgICAgICAgIFdlIHdlcmUgZ2VuZXJhdGluZyBaRXh0MzIgd2l0aCBJbnQzMiBhcyByZXR1cm4g
dHlwZSA6KAorCisgICAgICAgIEkgcmVuYW1lZCB6ZXJvRXh0KCkgdG8gemVyb0V4dDMyVG82NCgp
IGZvciB0aGUgWkV4dDMyIGNhc2VzLgorICAgICAgICBXZSdsbCByZW5hbWUgaXQgYWZ0ZXIgQjMg
aXMgdGhlIGRlZmF1bHQuCisKKyAgICAgICAgRm9yIGFsbCB0aGUgb3RoZXIgY2FzZXMsIGEgdXNl
bGVzcyB6ZXJvRXh0VG8zMigpIGRvZXMgdGhlIGpvYi4KKworICAgICAgICAqIGZ0bC9GVExCM091
dHB1dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6emVyb0V4dFRvMzIpOgorICAgICAg
ICAoSlNDOjpGVEw6Ok91dHB1dDo6emVyb0V4dDMyVG82NCk6CisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojp6ZXJvRXh0UHRyKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Onplcm9FeHQp
OiBEZWxldGVkLgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUJvb2xlYW5Ub051bWJlcik6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldEJ5VmFs
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlR2V0TXlB
cmd1bWVudEJ5VmFsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06
OmNvbXBpbGVOZXdBcnJheVdpdGhTaXplKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlR2V0RGlyZWN0UG5hbWUpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0xMVk06OmJveEludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpleGl0VmFsdWVGb3JOb2RlKToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAg
IFVucmVsYXRlZCwgZml4IHRoZSBidWlsZC4KKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6Cisg
ICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp6ZXJvRXh0MzJUbzY0KToKKyAgICAgICAgKEpTQzo6
RlRMOjpPdXRwdXQ6Onplcm9FeHRUbzMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Onpl
cm9FeHQpOgorCisyMDE1LTEyLTA0ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUu
Y29tPgorCiAgICAgICAgIFtKU0NdIFNvbWUgbW9yZSBjbGVhbnVwIG9mIEZUTEIzT3V0cHV0CiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MzQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oCmluZGV4IDRmMTJlYjY3YTA0NDBl
YzA5MjZkOGUzMjhlMzExZTIzNDFlMmY4YjYuLjU3Yjk2ZmJmMWEwMTcxY2NkNzRhMjc0YmExYmVk
MjZlOWNhNTg5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNP
dXRwdXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEIzT3V0cHV0LmgKQEAg
LTE3Miw5ICsxNzIsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGhhc1NlbnNpYmxlRG91
YmxlVG9JbnQoKSB7IENSQVNIKCk7IH0KICAgICBMVmFsdWUgc2Vuc2libGVEb3VibGVUb0ludChM
VmFsdWUpIHsgQ1JBU0goKTsgfQogCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGF0LCBpdCBvbmx5
IGV4aXN0cyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIExMVk0uCisgICAgTFZhbHVlIHplcm9FeHRU
bzMyKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KKwogICAgIExWYWx1ZSBzaWduRXh0
MzJUbzY0KExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1
ZT4obV9wcm9jLCBCMzo6U0V4dDMyLCBvcmlnaW4oKSwgdmFsdWUpOyB9Ci0gICAgTFZhbHVlIHpl
cm9FeHQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmRO
ZXc8QjM6OlZhbHVlPihtX3Byb2MsIEIzOjpaRXh0MzIsIHR5cGUsIG9yaWdpbigpLCB2YWx1ZSk7
IH0KLSAgICBMVmFsdWUgemVyb0V4dFB0cihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIHplcm9FeHQo
dmFsdWUsIEIzOjpJbnQ2NCk7IH0KKyAgICBMVmFsdWUgemVyb0V4dDMyVG82NChMVmFsdWUgdmFs
dWUpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlpF
eHQzMiwgb3JpZ2luKCksIHZhbHVlKTsgfQorICAgIExWYWx1ZSB6ZXJvRXh0UHRyKExWYWx1ZSB2
YWx1ZSkgeyByZXR1cm4gemVyb0V4dDMyVG82NCh2YWx1ZSk7IH0KICAgICBMVmFsdWUgZnBUb0lu
dChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgQ1JBU0goKTsgfQogICAgIExWYWx1ZSBmcFRv
VUludChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgQ1JBU0goKTsgfQogICAgIExWYWx1ZSBm
cFRvSW50MzIoTFZhbHVlIHZhbHVlKSB7IENSQVNIKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggMWVlMDIxODQ3NGUzNWU3ZmI5
MTUzMjM5MmUwZmRhNmM1NmJlMmE3Mi4uMmE2NDIyZWVlZWUyMTdhMTczY2VlMDk5MzQ2ZmU0NzZh
NjlmYmIwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKQEAgLTEzMzgsNyArMTMzOCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBz
d2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgQm9vbGVh
blVzZTogewotICAgICAgICAgICAgc2V0SW50MzIobV9vdXQuemVyb0V4dChsb3dCb29sZWFuKG1f
bm9kZS0+Y2hpbGQxKCkpLCBtX291dC5pbnQzMikpOworICAgICAgICAgICAgc2V0SW50MzIobV9v
dXQuemVyb0V4dFRvMzIobG93Qm9vbGVhbihtX25vZGUtPmNoaWxkMSgpKSkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTEzNjAsNyArMTM2MCw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuYXBwZW5kVG8oYm9vbGVhbkNhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAg
ICBWYWx1ZUZyb21CbG9jayBib29sZWFuUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmJpdE9y
KAotICAgICAgICAgICAgICAgIG1fb3V0Lnplcm9FeHQodW5ib3hCb29sZWFuKHZhbHVlKSwgbV9v
dXQuaW50NjQpLCBtX3RhZ1R5cGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICBtX291dC56ZXJv
RXh0MzJUbzY0KHVuYm94Qm9vbGVhbih2YWx1ZSkpLCBtX3RhZ1R5cGVOdW1iZXIpKTsKICAgICAg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CkBAIC0yOTU3LDcgKzI5
NTcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAobV9ub2RlLT5zaG91bGRTcGVjdWxhdGVNYWNo
aW5lSW50KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0cmljdEludDUyKG1fb3V0
Lnplcm9FeHQocmVzdWx0LCBtX291dC5pbnQ2NCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
c2V0U3RyaWN0SW50NTIobV9vdXQuemVyb0V4dDMyVG82NChyZXN1bHQpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAKQEAgLTMwMjQsNyArMzAyNCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBiYXNl
ID0gYWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxKSk7CiAgICAgICAgIAog
ICAgICAgICBMVmFsdWUgcG9pbnRlciA9IG1fb3V0LmJhc2VJbmRleCgKLSAgICAgICAgICAgIGJh
c2UudmFsdWUoKSwgbV9vdXQuemVyb0V4dChpbmRleCwgbV9vdXQuaW50UHRyKSwgU2NhbGVFaWdo
dCk7CisgICAgICAgICAgICBiYXNlLnZhbHVlKCksIG1fb3V0Lnplcm9FeHRQdHIoaW5kZXgpLCBT
Y2FsZUVpZ2h0KTsKICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkNjQoVHlwZWRQb2ludGVy
KG1faGVhcHMudmFyaWFibGVzLmF0QW55SW5kZXgoKSwgcG9pbnRlcikpKTsKICAgICB9CiAgICAg
CkBAIC0zMTQ4LDcgKzMxNDgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBtX291
dC5hZGQoCiAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9vdXQuc2hsKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lnpl
cm9FeHQoaW5kZXgsIG1fb3V0LmludFB0ciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9vdXQuemVyb0V4dFB0cihpbmRleCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnRQdHIobG9nRWxlbWVudFNpemUodHlwZSkpKSkpOwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIExUeXBlIHJlZlR5cGU7CkBAIC0zOTAwLDcgKzM5MDAsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgTFZhbHVlIHZlY3Rvckxlbmd0aCA9IHB1YmxpY0xlbmd0aDsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHBheWxvYWRTaXplID0KLSAgICAgICAg
ICAgICAgICBtX291dC5zaGwobV9vdXQuemVyb0V4dCh2ZWN0b3JMZW5ndGgsIG1fb3V0LmludFB0
ciksIG1fb3V0LmNvbnN0SW50UHRyKDMpKTsKKyAgICAgICAgICAgICAgICBtX291dC5zaGwobV9v
dXQuemVyb0V4dFB0cih2ZWN0b3JMZW5ndGgpLCBtX291dC5jb25zdEludFB0cigzKSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHlTaXplID0gbV9vdXQuYWRkKAog
ICAgICAgICAgICAgICAgIHBheWxvYWRTaXplLCBtX291dC5jb25zdEludFB0cihzaXplb2YoSW5k
ZXhpbmdIZWFkZXIpKSk7CkBAIC01NzU5LDcgKzU3NTksNyBAQCBwcml2YXRlOgogICAgICAgICBt
X291dC5hcHBlbmRUbyhpbmxpbmVMb2FkLCBvdXRPZkxpbmVMb2FkKTsKICAgICAgICAgVmFsdWVG
cm9tQmxvY2sgaW5saW5lUmVzdWx0ID0gbV9vdXQuYW5jaG9yKAogICAgICAgICAgICAgbV9vdXQu
bG9hZDY0KG1fb3V0LmJhc2VJbmRleChtX2hlYXBzLnByb3BlcnRpZXMuYXRBbnlOdW1iZXIoKSwg
Ci0gICAgICAgICAgICAgICAgYmFzZSwgbV9vdXQuemVyb0V4dChpbmRleCwgbV9vdXQuaW50NjQp
LCBTY2FsZUVpZ2h0LCBKU09iamVjdDo6b2Zmc2V0T2ZJbmxpbmVTdG9yYWdlKCkpKSk7CisgICAg
ICAgICAgICAgICAgYmFzZSwgbV9vdXQuemVyb0V4dDMyVG82NChpbmRleCksIFNjYWxlRWlnaHQs
IEpTT2JqZWN0OjpvZmZzZXRPZklubGluZVN0b3JhZ2UoKSkpKTsKICAgICAgICAgbV9vdXQuanVt
cChjb250aW51YXRpb24pOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG91dE9mTGluZUxvYWQs
IHNsb3dDYXNlKTsKQEAgLTgzNjMsNyArODM2Myw3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIExW
YWx1ZSBib3hJbnQzMihMVmFsdWUgdmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gbV9vdXQu
YWRkKG1fb3V0Lnplcm9FeHQodmFsdWUsIG1fb3V0LmludDY0KSwgbV90YWdUeXBlTnVtYmVyKTsK
KyAgICAgICAgcmV0dXJuIG1fb3V0LmFkZChtX291dC56ZXJvRXh0MzJUbzY0KHZhbHVlKSwgbV90
YWdUeXBlTnVtYmVyKTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIGlzQ2VsbE9yTWlzYyhMVmFs
dWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQpAQCAtOTUyMyw3
ICs5NTIzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIHZhbHVlID0gbV9ib29sZWFu
VmFsdWVzLmdldChub2RlKTsKICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7Ci0gICAgICAg
ICAgICBMVmFsdWUgdmFsdWVUb1Bhc3MgPSBtX291dC56ZXJvRXh0KHZhbHVlLnZhbHVlKCksIG1f
b3V0LmludDMyKTsKKyAgICAgICAgICAgIExWYWx1ZSB2YWx1ZVRvUGFzcyA9IG1fb3V0Lnplcm9F
eHRUbzMyKHZhbHVlLnZhbHVlKCkpOwogICAgICAgICAgICAgcmV0dXJuIGV4aXRBcmd1bWVudChh
cmd1bWVudHMsIERhdGFGb3JtYXRCb29sZWFuLCB2YWx1ZVRvUGFzcyk7CiAgICAgICAgIH0KICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHAKaW5kZXggYWM1Y2YwZTVlYzViNmMyZjZlZTViYmZiNTMwMWMyZmRjYmY1NDNmYy4uMzI4
MDk2YTk0MGIyZDA4ZWU0YTc5NGRiNzc0ZjVmZTUwMGZmNDY5NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcApAQCAtMjA2LDYgKzIwNiw5
IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogCiAgICAgQ0NhbGxIZWxwZXJzIGppdCh2bSwg
Y29kZUJsb2NrKTsKIAorI2lmIEZUTF9VU0VTX0IzCisgICAgLy8gRklYTUU6IEFkZCB0aGUgQjMg
T1NSIEV4aXQhCisjZWxzZQogICAgIC8vIFRoZSBmaXJzdCB0aGluZyB3ZSBuZWVkIHRvIGRvIGlz
IHJlc3RhYmxpc2ggb3VyIGZyYW1lIGluIHRoZSBjYXNlIG9mIGFuIGV4Y2VwdGlvbi4KICAgICBp
ZiAoZXhpdC53aWxsQXJyaXZlQXRPU1JFeGl0RnJvbUdlbmVyaWNVbndpbmQoKSkgewogICAgICAg
ICBSRUxFQVNFX0FTU0VSVCh2bS0+Y2FsbEZyYW1lRm9yQ2F0Y2gpOyAvLyBUaGUgZmlyc3QgdGlt
ZSB3ZSBoaXQgdGhpcyBleGl0LCBsaWtlIGF0IGFsbCBvdGhlciB0aW1lcywgdGhpcyBmaWVsZCBz
aG91bGQgYmUgbm9uLW51bGwuCkBAIC0yMjQsNiArMjI3LDcgQEAgc3RhdGljIHZvaWQgY29tcGls
ZVN0dWIoCiAgICAgICAgIGppdC5wdXNoVG9TYXZlSW1tZWRpYXRlV2l0aG91dFRvdWNoaW5nUmVn
aXN0ZXJzKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDB4YmFkYmVlZikpOwogICAgIH0gZWxz
ZSBpZiAoZXhpdC53aWxsQXJyaXZlQXRPU1JFeGl0RnJvbUNhbGxPcGVyYXRpb24oKSkKICAgICAg
ICAgZXhpdC5yZWNvdmVyUmVnaXN0ZXJzRnJvbVNwaWxsU2xvdChqaXQsIGppdENvZGUtPm9zckV4
aXRGcm9tR2VuZXJpY1Vud2luZFN0YWNrU3BpbGxTbG90KTsKKyNlbmRpZgogICAgIAogCiAgICAg
Ly8gV2UgbmVlZCBzY3JhdGNoIHNwYWNlIHRvIHNhdmUgYWxsIHJlZ2lzdGVycywgdG8gYnVpbGQg
dXAgdGhlIEpTIHN0YWNrLCB0byBkZWFsIHdpdGggdW53aW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAppbmRleCBmNzlkNmQ2MzdhOGEwM2FhYjc3NDA4ZTRlMDlmNjYwOGQ1NTFj
MDY3Li5jNTJlOTdlYTE4NjhkMjNmOGU2MTZlOGEyMDM5Zjg4NjM1ZmRiMzdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKQEAgLTIxNCw3ICsyMTQsOCBAQCBwdWJsaWM6CiAg
ICAgTFZhbHVlIHNlbnNpYmxlRG91YmxlVG9JbnQoTFZhbHVlKTsKIAogICAgIExWYWx1ZSBzaWdu
RXh0MzJUbzY0KExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gc2lnbkV4dCh2YWx1ZSwgaW50NjQpOyB9
Ci0gICAgTFZhbHVlIHplcm9FeHQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBi
dWlsZFpFeHQobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KKyAgICBMVmFsdWUgemVyb0V4dDMy
VG82NChMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIHplcm9FeHQodmFsdWUsIGludDY0KTsgfQorICAg
IExWYWx1ZSB6ZXJvRXh0VG8zMihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIHplcm9FeHQodmFsdWUs
IGludDMyKTsgfQogICAgIExWYWx1ZSB6ZXJvRXh0UHRyKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4g
emVyb0V4dCh2YWx1ZSwgaW50UHRyKTsgfQogICAgIExWYWx1ZSBmcFRvSW50KExWYWx1ZSB2YWx1
ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRGUFRvU0kobV9idWlsZGVyLCB2YWx1ZSwgdHlw
ZSk7IH0KICAgICBMVmFsdWUgZnBUb1VJbnQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJl
dHVybiBidWlsZEZQVG9VSShtX2J1aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQpAQCAtNDQ4LDYgKzQ0
OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBMVmFsdWUgc2lnbkV4dChMVmFsdWUgdmFs
dWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkU0V4dChtX2J1aWxkZXIsIHZhbHVlLCB0eXBl
KTsgfQorICAgIExWYWx1ZSB6ZXJvRXh0KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1
cm4gYnVpbGRaRXh0KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiB9OwogCiBpbmxpbmUgTFZh
bHVlIE91dHB1dDo6bG9hZDhTaWduRXh0MzIoVHlwZWRQb2ludGVyIHBvaW50ZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267687</attachid>
            <date>2015-12-19 08:32:46 -0800</date>
            <delta_ts>2015-12-19 11:02:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151905-20151219173207.patch</filename>
            <type>text/plain</type>
            <size>1885</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGNhNmVkMzkyMzA1NTk3NDI0ZjA4ZWU1MTIyNjJlZTQ4NDM4Nzc4Li5hNmU4ZWI1NTZiMGM4Njlh
ZWVlMDA3NTkzOWM1YzEyNDU5ZWEwYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxOCBAQAogMjAxNS0xMi0xOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KIAorICAgICAgICBbSlNDXSBGVExCM091dHB1dCBnZW5lcmF0ZXMgc29tZSBpbnZhbGlk
IFpFeHQzMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUxOTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RlRMTG93ZXJERkdUb0xMVk0gY2FsbHMgemVyb0V4dCgpIHRvIGludDMyIGluIHNvbWUgY2FzZXMu
CisgICAgICAgIFdlIHdlcmUgZ2VuZXJhdGluZyBaRXh0MzIgd2l0aCBJbnQzMiBhcyByZXR1cm4g
dHlwZSA6KAorCisgICAgICAgICogZnRsL0ZUTEIzT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZU
TDo6T3V0cHV0Ojp6ZXJvRXh0KToKKworMjAxNS0xMi0xOSAgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KKwogICAgICAgICBbSlNDXSBCMzogQWRkIGluZGV4ZWQgYWRkcmVz
c2luZyB3aGVuIGxvd2VyaW5nIEJpdHdpc2VDYXN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0MzIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExCM091dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExCM091dHB1dC5oCmluZGV4IGFiOGU1MGIyN2MyNTdlY2I5ODE4ZmQwYmQ3NGE0YjFmMWM0OTM3
NzYuLmM5OWYzMmI3YTkxMTFlZjkzZmIzOTJjZGYyM2ZiNmNmNmM2NzdiOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQjNPdXRwdXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEIzT3V0cHV0LmgKQEAgLTE3OSw3ICsxNzksMTIgQEAgcHVibGlj
OgogICAgIExWYWx1ZSBzZW5zaWJsZURvdWJsZVRvSW50KExWYWx1ZSkgeyBDUkFTSCgpOyB9CiAK
ICAgICBMVmFsdWUgc2lnbkV4dDMyVG82NChMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIG1fYmxvY2st
PmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlNFeHQzMiwgb3JpZ2luKCksIHZhbHVl
KTsgfQotICAgIExWYWx1ZSB6ZXJvRXh0KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1
cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6WkV4dDMyLCB0eXBl
LCBvcmlnaW4oKSwgdmFsdWUpOyB9CisgICAgTFZhbHVlIHplcm9FeHQoTFZhbHVlIHZhbHVlLCBM
VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLT50eXBlKCkgPT0gdHlwZSkKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5l
dzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OlpFeHQzMiwgb3JpZ2luKCksIHZhbHVlKTsKKyAgICB9
CiAgICAgTFZhbHVlIHplcm9FeHRQdHIoTFZhbHVlIHZhbHVlKSB7IHJldHVybiB6ZXJvRXh0KHZh
bHVlLCBCMzo6SW50NjQpOyB9CiAgICAgTFZhbHVlIGZwVG9JbnQzMihMVmFsdWUgdmFsdWUpIHsg
Q1JBU0goKTsgfQogICAgIExWYWx1ZSBmcFRvVUludDMyKExWYWx1ZSB2YWx1ZSkgeyBDUkFTSCgp
OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>