<?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>121154</bug_id>
          
          <creation_ts>2013-09-11 05:17:57 -0700</creation_ts>
          <short_desc>OwnPtr: Use copy/move-and-swap for assignment operators</short_desc>
          <delta_ts>2013-09-11 07:32:22 -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>Web Template Framework</component>
          <version>528+ (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="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>927731</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-09-11 05:17:57 -0700</bug_when>
    <thetext>Rationals:
- decrease of repeated code
- consistency with RefPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927746</commentid>
    <comment_count>1</comment_count>
      <attachid>211306</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-09-11 06:33:59 -0700</bug_when>
    <thetext>Created attachment 211306
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927766</commentid>
    <comment_count>2</comment_count>
      <attachid>211306</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-11 07:17:16 -0700</bug_when>
    <thetext>Comment on attachment 211306
patch

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

&gt; Source/WTF/wtf/OwnPtr.h:140
&gt; -        PtrType ptr = m_ptr;
&gt; -        m_ptr = o.leakPtr();
&gt; -        ASSERT(!ptr || m_ptr != ptr);
&gt; -        deleteOwnedPtr(ptr);
&gt; +        ASSERT(!o || o != m_ptr);
&gt; +        OwnPtr ptr = o;
&gt; +        swap(ptr);

I wouldn&apos;t worry about modifying PassOwnPtr since then plan is to get rid of it.

&gt; Source/WTF/wtf/OwnPtr.h:148
&gt; -        PtrType ptr = m_ptr;
&gt; -        m_ptr = o.leakPtr();
&gt; -        ASSERT(!ptr || m_ptr != ptr);
&gt; -        deleteOwnedPtr(ptr);
&gt; +        ASSERT(!o || o != m_ptr);
&gt; +        OwnPtr ptr = o;
&gt; +        swap(ptr);

Ditto.

&gt; Source/WTF/wtf/OwnPtr.h:166
&gt; +        OwnPtr ptr = std::move(o);

Can just use auto here.

&gt; Source/WTF/wtf/OwnPtr.h:174
&gt; +        OwnPtr ptr = std::move(o);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927776</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-09-11 07:32:22 -0700</bug_when>
    <thetext>Committed r155526: &lt;http://trac.webkit.org/changeset/155526&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211306</attachid>
            <date>2013-09-11 06:33:59 -0700</date>
            <delta_ts>2013-09-11 07:17:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug121154</filename>
            <type>text/plain</type>
            <size>2413</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGFlMTFhY2ViMTNlZDAzOTdkZjgwNTc1YTkzYTEyMTYyNzAzOWM2NzIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIFNlcCAxMSAxNjozMjo0NyAyMDEzICswMzAwCgogICAgYnVnMTIxMTU0CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAzMDAy
Yjc5Li4yZDU2MzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA5LTExICBNaWtoYWlsIFBv
emRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIE93blB0
cjogVXNlIGNvcHkvbW92ZS1hbmQtc3dhcCBmb3IgYXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTE1NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJhdGlvbmFsczoKKyAg
ICAgICAgLSBkZWNyZWFzZSBvZiByZXBlYXRlZCBjb2RlCisgICAgICAgIC0gY29uc2lzdGVuY3kg
d2l0aCBSZWZQdHIKKworICAgICAgICAqIHd0Zi9Pd25QdHIuaDoKKyAgICAgICAgKFdURjo6PSk6
CisKIDIwMTMtMDktMTAgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1NdIFVwc3RyZWFtIHRleHQgYXV0b3NpemluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvT3duUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHIuaAppbmRleCA5MmE0YjQ5Li41
YTNhYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHIuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Pd25QdHIuaApAQCAtMTM1LDE5ICsxMzUsMTcgQEAgbmFtZXNwYWNlIFdURiB7CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgT3duUHRyPFQ+JiBPd25QdHI8VD46Om9w
ZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFQ+JiBvKQogICAgIHsKLSAgICAgICAgUHRyVHlwZSBw
dHIgPSBtX3B0cjsKLSAgICAgICAgbV9wdHIgPSBvLmxlYWtQdHIoKTsKLSAgICAgICAgQVNTRVJU
KCFwdHIgfHwgbV9wdHIgIT0gcHRyKTsKLSAgICAgICAgZGVsZXRlT3duZWRQdHIocHRyKTsKKyAg
ICAgICAgQVNTRVJUKCFvIHx8IG8gIT0gbV9wdHIpOworICAgICAgICBPd25QdHIgcHRyID0gbzsK
KyAgICAgICAgc3dhcChwdHIpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxU
PiYgT3duUHRyPFQ+OjpvcGVyYXRvcj0oY29uc3QgUGFzc093blB0cjxVPiYgbykKICAgICB7Ci0g
ICAgICAgIFB0clR5cGUgcHRyID0gbV9wdHI7Ci0gICAgICAgIG1fcHRyID0gby5sZWFrUHRyKCk7
Ci0gICAgICAgIEFTU0VSVCghcHRyIHx8IG1fcHRyICE9IHB0cik7Ci0gICAgICAgIGRlbGV0ZU93
bmVkUHRyKHB0cik7CisgICAgICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsKKyAgICAgICAg
T3duUHRyIHB0ciA9IG87CisgICAgICAgIHN3YXAocHRyKTsKICAgICAgICAgcmV0dXJuICp0aGlz
OwogICAgIH0KIApAQCAtMTY0LDIxICsxNjIsMTcgQEAgbmFtZXNwYWNlIFdURiB7CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgT3duUHRyPFQ+JiBPd25QdHI8VD46Om9wZXJhdG9y
PShPd25QdHI8VD4mJiBvKQogICAgIHsKLSAgICAgICAgUHRyVHlwZSBwdHIgPSBtX3B0cjsKLSAg
ICAgICAgbV9wdHIgPSBvLmxlYWtQdHIoKTsKLSAgICAgICAgQVNTRVJUKCFwdHIgfHwgbV9wdHIg
IT0gcHRyKTsKLSAgICAgICAgZGVsZXRlT3duZWRQdHIocHRyKTsKLQorICAgICAgICBBU1NFUlQo
IW8gfHwgbyAhPSBtX3B0cik7CisgICAgICAgIE93blB0ciBwdHIgPSBzdGQ6Om1vdmUobyk7Cisg
ICAgICAgIHN3YXAocHRyKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBPd25QdHI8VD4m
IE93blB0cjxUPjo6b3BlcmF0b3I9KE93blB0cjxVPiYmIG8pCiAgICAgewotICAgICAgICBQdHJU
eXBlIHB0ciA9IG1fcHRyOwotICAgICAgICBtX3B0ciA9IG8ubGVha1B0cigpOwotICAgICAgICBB
U1NFUlQoIXB0ciB8fCBtX3B0ciAhPSBwdHIpOwotICAgICAgICBkZWxldGVPd25lZFB0cihwdHIp
OwotCisgICAgICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsKKyAgICAgICAgT3duUHRyIHB0
ciA9IHN0ZDo6bW92ZShvKTsKKyAgICAgICAgc3dhcChwdHIpOwogICAgICAgICByZXR1cm4gKnRo
aXM7CiAgICAgfQogI2VuZGlmCg==
</data>
<flag name="review"
          id="233377"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="233378"
          type_id="3"
          status="-"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>