<?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>158269</bug_id>
          
          <creation_ts>2016-06-01 13:39:03 -0700</creation_ts>
          <short_desc>Allow RefPtrs of const types</short_desc>
          <delta_ts>2016-07-14 17:01:32 -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>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1198262</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-01 13:39:03 -0700</bug_when>
    <thetext>Allow RefPtrs of const types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198265</commentid>
    <comment_count>1</comment_count>
      <attachid>280262</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-01 13:41:24 -0700</bug_when>
    <thetext>Created attachment 280262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198391</commentid>
    <comment_count>2</comment_count>
      <attachid>280262</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-06-01 19:34:30 -0700</bug_when>
    <thetext>Comment on attachment 280262
Patch

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

&gt; Source/WTF/wtf/RefCounted.h:145
&gt; +            delete const_cast&lt;T*&gt;(static_cast&lt;const T*&gt;(this));

Was this change actually needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198484</commentid>
    <comment_count>3</comment_count>
      <attachid>280315</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-02 00:56:56 -0700</bug_when>
    <thetext>Created attachment 280315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198485</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-02 00:57:32 -0700</bug_when>
    <thetext>A change was needed, but the const_cast was not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198830</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-06-02 19:52:51 -0700</bug_when>
    <thetext>I wonder if we should make RefPtr do the cast instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198837</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-02 20:12:39 -0700</bug_when>
    <thetext>This allows you to make a RefPtr&lt;const X&gt; but making a RefPtr&lt;X&gt; from a RefPtr&lt;const X&gt; doesn&apos;t work because it sees those types as unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199206</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-03 19:53:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; This allows you to make a RefPtr&lt;const X&gt; but making a RefPtr&lt;X&gt; from a
&gt; RefPtr&lt;const X&gt; doesn&apos;t work because it sees those types as unrelated.

I think you mean that making a RefPtr&lt;const X&gt; from a RefPtr&lt;X&gt; doesn’t work. Because that other one should not work!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199207</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-03 19:54:18 -0700</bug_when>
    <thetext>I’m OK with this change, but I’d like to see test coverage for this in Tools/TestWebKitAPI/Tests/WTF.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200079</commentid>
    <comment_count>9</comment_count>
      <attachid>280713</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-07 09:42:58 -0700</bug_when>
    <thetext>Created attachment 280713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200080</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-07 09:44:09 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; This allows you to make a RefPtr&lt;const X&gt; but making a RefPtr&lt;X&gt; from a
&gt; &gt; RefPtr&lt;const X&gt; doesn&apos;t work because it sees those types as unrelated.
&gt; 
&gt; I think you mean that making a RefPtr&lt;const X&gt; from a RefPtr&lt;X&gt; doesn’t
&gt; work. Because that other one should not work!
Yep, I got those backwards.  I thought I was running into template weirdness when using this, but I added a test and it compiles fine.  I&apos;ll fix it if I run into it again and something is actually wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201125</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-09 20:22:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I wonder if we should make RefPtr do the cast instead.

Did you have a reply to Anders about this, Alex?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203051</commentid>
    <comment_count>12</comment_count>
      <attachid>280713</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-06-16 15:46:23 -0700</bug_when>
    <thetext>Comment on attachment 280713
Patch

This seems like a good change, but I&apos;d feel better if Anders or Sam glanced at it before we landed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203866</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-20 13:26:00 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #5)
&gt; &gt; I wonder if we should make RefPtr do the cast instead.
&gt; 
&gt; Did you have a reply to Anders about this, Alex?

I prefer this approach because RefCounted changing the ref count and deleting the object when the last ref is gone does not mutate the object itself, but if you implemented your own ref/deref functions that did mutate the object significantly, then you would not want a RefPtr&lt;const YourType&gt; to be possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211243</commentid>
    <comment_count>14</comment_count>
      <attachid>280713</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 17:01:26 -0700</bug_when>
    <thetext>Comment on attachment 280713
Patch

Clearing flags on attachment: 280713

Committed r203257: &lt;http://trac.webkit.org/changeset/203257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211244</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 17:01:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280262</attachid>
            <date>2016-06-01 13:41:24 -0700</date>
            <delta_ts>2016-06-02 00:56:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158269-20160601134244.patch</filename>
            <type>text/plain</type>
            <size>2573</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDE1NjYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA2LTAxICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWxsb3cgUmVmUHRycyBvZiBjb25z
dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUmVmQ291bnRlZC5oOgorICAgICAgICAoV1RGOjpSZWZDb3VudGVkQmFzZTo6cmVmKToK
KyAgICAgICAgKFdURjo6UmVmQ291bnRlZEJhc2U6On5SZWZDb3VudGVkQmFzZSk6CisgICAgICAg
IChXVEY6OlJlZkNvdW50ZWRCYXNlOjpkZXJlZkJhc2UpOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkOjpkZXJlZik6CisgICAgICAgIENyZWF0aW5nIHJlZmVyZW5jZXMgdG8gYSBjb25zdCBvYmpl
Y3QgZG9lcyBub3QgcmVhbGx5IG1vZGlmeSB0aGUgb2JqZWN0LAorICAgICAgICBzbyBldmVyeXRo
aW5nIGluIFJlZkNvdW50ZWQgaXMgbm93IG11dGFibGUsIGFuZCByZWYgYW5kIGRlcmVmIGFyZSBj
b25zdC4KKwogMjAxNi0wNS0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMTM2MyBhbmQgcjIwMTQ1
Ni4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9SZWZDb3VudGVkLmgJKHJldmlzaW9uIDIwMTUyNCkKKysrIFNvdXJjZS9XVEYv
d3RmL1JlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMTgsOCArMTgsNyBAQAogICoKICAq
LwogCi0jaWZuZGVmIFJlZkNvdW50ZWRfaAotI2RlZmluZSBSZWZDb3VudGVkX2gKKyNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1h
bGxvYy5oPgpAQCAtMzgsNyArMzcsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGdlbmVyYXRlZCBi
eSB0aGUgY29tcGlsZXIgKHRlY2huaXF1ZSBjYWxsZWQgdGVtcGxhdGUgaG9pc3RpbmcpLgogY2xh
c3MgUmVmQ291bnRlZEJhc2UgewogcHVibGljOgotICAgIHZvaWQgcmVmKCkKKyAgICB2b2lkIHJl
ZigpIGNvbnN0CiAgICAgewogI2lmIENIRUNLX1JFRl9DT1VOVEVEX0xJRkVDWUNMRQogICAgICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9kZWxldGlvbkhhc0JlZ3VuKTsK
QEAgLTg4LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogICAgIC8vIFJldHVybnMgd2hl
dGhlciB0aGUgcG9pbnRlciBzaG91bGQgYmUgZnJlZWQgb3Igbm90LgotICAgIGJvb2wgZGVyZWZC
YXNlKCkKKyAgICBib29sIGRlcmVmQmFzZSgpIGNvbnN0CiAgICAgewogI2lmIENIRUNLX1JFRl9D
T1VOVEVEX0xJRkVDWUNMRQogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TighbV9kZWxldGlvbkhhc0JlZ3VuKTsKQEAgLTEyMCwxMCArMTE5LDEwIEBAIHByaXZhdGU6CiAg
ICAgZnJpZW5kIHZvaWQgYWRvcHRlZChSZWZDb3VudGVkQmFzZSopOwogI2VuZGlmCiAKLSAgICB1
bnNpZ25lZCBtX3JlZkNvdW50OworICAgIG11dGFibGUgdW5zaWduZWQgbV9yZWZDb3VudDsKICNp
ZiBDSEVDS19SRUZfQ09VTlRFRF9MSUZFQ1lDTEUKLSAgICBib29sIG1fZGVsZXRpb25IYXNCZWd1
bjsKLSAgICBib29sIG1fYWRvcHRpb25Jc1JlcXVpcmVkOworICAgIG11dGFibGUgYm9vbCBtX2Rl
bGV0aW9uSGFzQmVndW47CisgICAgbXV0YWJsZSBib29sIG1fYWRvcHRpb25Jc1JlcXVpcmVkOwog
I2VuZGlmCiB9OwogCkBAIC0xNDAsMTAgKzEzOSwxMCBAQCBpbmxpbmUgdm9pZCBhZG9wdGVkKFJl
ZkNvdW50ZWRCYXNlKiBvYmplCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZDb3VudGVk
IDogcHVibGljIFJlZkNvdW50ZWRCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZWZD
b3VudGVkKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdm9pZCBkZXJl
ZigpCisgICAgdm9pZCBkZXJlZigpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoZGVyZWZCYXNl
KCkpCi0gICAgICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8VCo+KHRoaXMpOworICAgICAgICAg
ICAgZGVsZXRlIGNvbnN0X2Nhc3Q8VCo+KHN0YXRpY19jYXN0PGNvbnN0IFQqPih0aGlzKSk7CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC0xNTYsNSArMTU1LDMgQEAgcHJvdGVjdGVkOgogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UmVmQ291bnRlZDsKLQotI2VuZGlmIC8vIFJlZkNv
dW50ZWRfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280315</attachid>
            <date>2016-06-02 00:56:56 -0700</date>
            <delta_ts>2016-06-07 09:42:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158269-20160602005814.patch</filename>
            <type>text/plain</type>
            <size>2557</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDE1NjYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA2LTAxICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWxsb3cgUmVmUHRycyBvZiBjb25z
dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUmVmQ291bnRlZC5oOgorICAgICAgICAoV1RGOjpSZWZDb3VudGVkQmFzZTo6cmVmKToK
KyAgICAgICAgKFdURjo6UmVmQ291bnRlZEJhc2U6On5SZWZDb3VudGVkQmFzZSk6CisgICAgICAg
IChXVEY6OlJlZkNvdW50ZWRCYXNlOjpkZXJlZkJhc2UpOgorICAgICAgICAoV1RGOjpSZWZDb3Vu
dGVkOjpkZXJlZik6CisgICAgICAgIENyZWF0aW5nIHJlZmVyZW5jZXMgdG8gYSBjb25zdCBvYmpl
Y3QgZG9lcyBub3QgcmVhbGx5IG1vZGlmeSB0aGUgb2JqZWN0LAorICAgICAgICBzbyBldmVyeXRo
aW5nIGluIFJlZkNvdW50ZWQgaXMgbm93IG11dGFibGUsIGFuZCByZWYgYW5kIGRlcmVmIGFyZSBj
b25zdC4KKwogMjAxNi0wNS0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMTM2MyBhbmQgcjIwMTQ1
Ni4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9SZWZDb3VudGVkLmgJKHJldmlzaW9uIDIwMTUyNCkKKysrIFNvdXJjZS9XVEYv
d3RmL1JlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMTgsOCArMTgsNyBAQAogICoKICAq
LwogCi0jaWZuZGVmIFJlZkNvdW50ZWRfaAotI2RlZmluZSBSZWZDb3VudGVkX2gKKyNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1h
bGxvYy5oPgpAQCAtMzgsNyArMzcsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGdlbmVyYXRlZCBi
eSB0aGUgY29tcGlsZXIgKHRlY2huaXF1ZSBjYWxsZWQgdGVtcGxhdGUgaG9pc3RpbmcpLgogY2xh
c3MgUmVmQ291bnRlZEJhc2UgewogcHVibGljOgotICAgIHZvaWQgcmVmKCkKKyAgICB2b2lkIHJl
ZigpIGNvbnN0CiAgICAgewogI2lmIENIRUNLX1JFRl9DT1VOVEVEX0xJRkVDWUNMRQogICAgICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9kZWxldGlvbkhhc0JlZ3VuKTsK
QEAgLTg4LDcgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogICAgIC8vIFJldHVybnMgd2hl
dGhlciB0aGUgcG9pbnRlciBzaG91bGQgYmUgZnJlZWQgb3Igbm90LgotICAgIGJvb2wgZGVyZWZC
YXNlKCkKKyAgICBib29sIGRlcmVmQmFzZSgpIGNvbnN0CiAgICAgewogI2lmIENIRUNLX1JFRl9D
T1VOVEVEX0xJRkVDWUNMRQogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TighbV9kZWxldGlvbkhhc0JlZ3VuKTsKQEAgLTEyMCwxMCArMTE5LDEwIEBAIHByaXZhdGU6CiAg
ICAgZnJpZW5kIHZvaWQgYWRvcHRlZChSZWZDb3VudGVkQmFzZSopOwogI2VuZGlmCiAKLSAgICB1
bnNpZ25lZCBtX3JlZkNvdW50OworICAgIG11dGFibGUgdW5zaWduZWQgbV9yZWZDb3VudDsKICNp
ZiBDSEVDS19SRUZfQ09VTlRFRF9MSUZFQ1lDTEUKLSAgICBib29sIG1fZGVsZXRpb25IYXNCZWd1
bjsKLSAgICBib29sIG1fYWRvcHRpb25Jc1JlcXVpcmVkOworICAgIG11dGFibGUgYm9vbCBtX2Rl
bGV0aW9uSGFzQmVndW47CisgICAgbXV0YWJsZSBib29sIG1fYWRvcHRpb25Jc1JlcXVpcmVkOwog
I2VuZGlmCiB9OwogCkBAIC0xNDAsMTAgKzEzOSwxMCBAQCBpbmxpbmUgdm9pZCBhZG9wdGVkKFJl
ZkNvdW50ZWRCYXNlKiBvYmplCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZDb3VudGVk
IDogcHVibGljIFJlZkNvdW50ZWRCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZWZD
b3VudGVkKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdm9pZCBkZXJl
ZigpCisgICAgdm9pZCBkZXJlZigpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoZGVyZWZCYXNl
KCkpCi0gICAgICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8VCo+KHRoaXMpOworICAgICAgICAg
ICAgZGVsZXRlIHN0YXRpY19jYXN0PGNvbnN0IFQqPih0aGlzKTsKICAgICB9CiAKIHByb3RlY3Rl
ZDoKQEAgLTE1Niw1ICsxNTUsMyBAQCBwcm90ZWN0ZWQ6CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAog
dXNpbmcgV1RGOjpSZWZDb3VudGVkOwotCi0jZW5kaWYgLy8gUmVmQ291bnRlZF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280713</attachid>
            <date>2016-06-07 09:42:58 -0700</date>
            <delta_ts>2016-07-14 17:01:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158269-20160607094424.patch</filename>
            <type>text/plain</type>
            <size>4965</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDE3MzkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA2LTA2ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWxsb3cgUmVmUHRycyBvZiBjb25z
dCBSZWZDb3VudGVkIHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTgyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHd0Zi9SZWZDb3VudGVkLmg6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZWRC
YXNlOjpyZWYpOgorICAgICAgICAoV1RGOjpSZWZDb3VudGVkQmFzZTo6flJlZkNvdW50ZWRCYXNl
KToKKyAgICAgICAgKFdURjo6UmVmQ291bnRlZEJhc2U6OmRlcmVmQmFzZSk6CisgICAgICAgIChX
VEY6OlJlZkNvdW50ZWQ6OmRlcmVmKToKKyAgICAgICAgQ3JlYXRpbmcgcmVmZXJlbmNlcyB0byBh
IGNvbnN0IG9iamVjdCBkb2VzIG5vdCByZWFsbHkgbW9kaWZ5IHRoZSBvYmplY3QsCisgICAgICAg
IHNvIGV2ZXJ5dGhpbmcgaW4gUmVmQ291bnRlZCBpcyBub3cgbXV0YWJsZSwgYW5kIHJlZiBhbmQg
ZGVyZWYgYXJlIGNvbnN0LgorCiAyMDE2LTA2LTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBw
bGUuY29tPgogCiAgICAgICAgIGVxdWFsKFN0cmluZ1ZpZXcsIFN0cmluZ1ZpZXcpIGZvciBzdHJp
bmdzIHNob3VsZCBoYXZlIGEgZmFzdCBwYXRoIGZvciBwb2ludGVyIGVxdWFsaXR5CkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
UmVmQ291bnRlZC5oCShyZXZpc2lvbiAyMDE3MzkpCisrKyBTb3VyY2UvV1RGL3d0Zi9SZWZDb3Vu
dGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4LDggKzE4LDcgQEAKICAqCiAgKi8KIAotI2lmbmRl
ZiBSZWZDb3VudGVkX2gKLSNkZWZpbmUgUmVmQ291bnRlZF9oCisjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KQEAg
LTM4LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyBnZW5lcmF0ZWQgYnkgdGhlIGNvbXBp
bGVyICh0ZWNobmlxdWUgY2FsbGVkIHRlbXBsYXRlIGhvaXN0aW5nKS4KIGNsYXNzIFJlZkNvdW50
ZWRCYXNlIHsKIHB1YmxpYzoKLSAgICB2b2lkIHJlZigpCisgICAgdm9pZCByZWYoKSBjb25zdAog
ICAgIHsKICNpZiBDSEVDS19SRUZfQ09VTlRFRF9MSUZFQ1lDTEUKICAgICAgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1fZGVsZXRpb25IYXNCZWd1bik7CkBAIC04OCw3ICs4
Nyw3IEBAIHByb3RlY3RlZDoKICAgICB9CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHBv
aW50ZXIgc2hvdWxkIGJlIGZyZWVkIG9yIG5vdC4KLSAgICBib29sIGRlcmVmQmFzZSgpCisgICAg
Ym9vbCBkZXJlZkJhc2UoKSBjb25zdAogICAgIHsKICNpZiBDSEVDS19SRUZfQ09VTlRFRF9MSUZF
Q1lDTEUKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1fZGVsZXRp
b25IYXNCZWd1bik7CkBAIC0xMjAsMTAgKzExOSwxMCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCB2
b2lkIGFkb3B0ZWQoUmVmQ291bnRlZEJhc2UqKTsKICNlbmRpZgogCi0gICAgdW5zaWduZWQgbV9y
ZWZDb3VudDsKKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1fcmVmQ291bnQ7CiAjaWYgQ0hFQ0tfUkVG
X0NPVU5URURfTElGRUNZQ0xFCi0gICAgYm9vbCBtX2RlbGV0aW9uSGFzQmVndW47Ci0gICAgYm9v
bCBtX2Fkb3B0aW9uSXNSZXF1aXJlZDsKKyAgICBtdXRhYmxlIGJvb2wgbV9kZWxldGlvbkhhc0Jl
Z3VuOworICAgIG11dGFibGUgYm9vbCBtX2Fkb3B0aW9uSXNSZXF1aXJlZDsKICNlbmRpZgogfTsK
IApAQCAtMTQwLDEwICsxMzksMTAgQEAgaW5saW5lIHZvaWQgYWRvcHRlZChSZWZDb3VudGVkQmFz
ZSogb2JqZQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmQ291bnRlZCA6IHB1YmxpYyBS
ZWZDb3VudGVkQmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVmQ291bnRlZCk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZvaWQgZGVyZWYoKQorICAgIHZv
aWQgZGVyZWYoKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGRlcmVmQmFzZSgpKQotICAgICAg
ICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PFQqPih0aGlzKTsKKyAgICAgICAgICAgIGRlbGV0ZSBz
dGF0aWNfY2FzdDxjb25zdCBUKj4odGhpcyk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC0xNTYs
NSArMTU1LDMgQEAgcHJvdGVjdGVkOgogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6
UmVmQ291bnRlZDsKLQotI2VuZGlmIC8vIFJlZkNvdW50ZWRfaApJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNzU1KQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDYt
MDcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBBbGxvdyBSZWZQdHJzIG9mIGNvbnN0IFJlZkNvdW50ZWQgdHlwZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODI2OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvUmVmUHRyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6Q29uc3RSZWZDb3VudGVkOjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6cmV0dXJuQ29uc3RSZWZDb3VudGVkUmVmKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OnJldHVyblJlZkNvdW50ZWRSZWYpOgorCiAyMDE2LTA2LTA2ICBDYXJsb3MgQWxiZXJ0byBM
b3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIw
MTQ0OSkgW0dUS10gQVJNdjcgYnVpbGQgZmFpbHMgd2l0aCBsaWJpY3VkYXRhLnNvLjU1OiBjYW5u
b3Qgb3BlbiBzaGFyZWQgb2JqZWN0IGZpbGUgb24gZ3RrZG9jLXNjYW5nb2JqIHN0ZXAuCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAJKHJldmlzaW9uIDIwMTcz
OSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
IlJlZkxvZ2dlci5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CkBAIC00MDMsNCArNDA1LDM0IEBAIFRFU1QoV1RGX1JlZlB0ciwgUmV0
dXJuVmFsdWUpCiAgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0
cigpLmNfc3RyKCkpOwogfQogCisgICAgCitzdHJ1Y3QgQ29uc3RSZWZDb3VudGVkIDogUmVmQ291
bnRlZDxDb25zdFJlZkNvdW50ZWQ+IHsKKyAgICBzdGF0aWMgUmVmPENvbnN0UmVmQ291bnRlZD4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb25zdFJlZkNvdW50ZWQpOyB9Cit9Owor
Citjb25zdCBDb25zdFJlZkNvdW50ZWQmIHJldHVybkNvbnN0UmVmQ291bnRlZFJlZigpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENvbnN0UmVmQ291bnRlZD4gaW5zdGFuY2U7CisgICAg
cmV0dXJuIGluc3RhbmNlLmdldCgpOworfQorQ29uc3RSZWZDb3VudGVkJiByZXR1cm5SZWZDb3Vu
dGVkUmVmKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29uc3RSZWZDb3VudGVkPiBp
bnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2UuZ2V0KCk7Cit9CisKK1RFU1QoV1RGX1JlZlB0
ciwgQ29uc3QpCit7CisgICAgLy8gVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBjb21waWxlcyB3aXRo
b3V0IGFuIGVycm9yLgorICAgIGF1dG8gYSA9IENvbnN0UmVmQ291bnRlZDo6Y3JlYXRlKCk7Cisg
ICAgUmVmPGNvbnN0IENvbnN0UmVmQ291bnRlZD4gYiA9IFdURk1vdmUoYSk7CisgICAgUmVmUHRy
PGNvbnN0IENvbnN0UmVmQ291bnRlZD4gYyA9IGIucHRyKCk7CisgICAgUmVmPGNvbnN0IENvbnN0
UmVmQ291bnRlZD4gZCA9IHJldHVybkNvbnN0UmVmQ291bnRlZFJlZigpOworICAgIFJlZlB0cjxj
b25zdCBDb25zdFJlZkNvdW50ZWQ+IGUgPSAmcmV0dXJuQ29uc3RSZWZDb3VudGVkUmVmKCk7Cisg
ICAgUmVmUHRyPENvbnN0UmVmQ291bnRlZD4gZiA9IENvbnN0UmVmQ291bnRlZDo6Y3JlYXRlKCk7
CisgICAgUmVmUHRyPGNvbnN0IENvbnN0UmVmQ291bnRlZD4gZyA9IGY7CisgICAgUmVmUHRyPGNv
bnN0IENvbnN0UmVmQ291bnRlZD4gaChmKTsKKyAgICBSZWY8Y29uc3QgQ29uc3RSZWZDb3VudGVk
PiBpKHJldHVyblJlZkNvdW50ZWRSZWYoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>