Title: [180535] trunk
Revision
180535
Author
[email protected]
Date
2015-02-23 17:03:58 -0800 (Mon, 23 Feb 2015)

Log Message

WTF::WeakPtr should rename 'forgot' to 'clear' and support nullptr assignment
https://bugs.webkit.org/show_bug.cgi?id=141935

Reviewed by Myles C. Maxfield.

Source/WTF:

* wtf/WeakPtr.h:
(WTF::WeakPtr::operator=): Added 'nullptr_t' overload.
(WTF::WeakPtr::clear): Renamed from 'forget'
(WTF::WeakPtr::forget): Deleted.

Tools:

* TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
(TestWebKitAPI::TEST): Updated for 'clear' method rename, and added a few
tests for assigning from nullptr.

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (180534 => 180535)


--- trunk/Source/WTF/ChangeLog	2015-02-24 00:55:53 UTC (rev 180534)
+++ trunk/Source/WTF/ChangeLog	2015-02-24 01:03:58 UTC (rev 180535)
@@ -1,5 +1,17 @@
 2015-02-23  Brent Fulgham  <[email protected]>
 
+        WTF::WeakPtr should rename 'forgot' to 'clear' and support nullptr assignment
+        https://bugs.webkit.org/show_bug.cgi?id=141935
+
+        Reviewed by Myles C. Maxfield.
+
+        * wtf/WeakPtr.h:
+        (WTF::WeakPtr::operator=): Added 'nullptr_t' overload.
+        (WTF::WeakPtr::clear): Renamed from 'forget'
+        (WTF::WeakPtr::forget): Deleted.
+
+2015-02-23  Brent Fulgham  <[email protected]>
+
         WTF::WeakPtr should have a 'forget' method
         https://bugs.webkit.org/show_bug.cgi?id=141923
 

Modified: trunk/Source/WTF/wtf/WeakPtr.h (180534 => 180535)


--- trunk/Source/WTF/wtf/WeakPtr.h	2015-02-24 00:55:53 UTC (rev 180534)
+++ trunk/Source/WTF/wtf/WeakPtr.h	2015-02-24 01:03:58 UTC (rev 180535)
@@ -100,10 +100,11 @@
 
     WeakPtr& operator=(const WeakPtr& o) { m_ref = o.m_ref.copyRef(); return *this; }
     template<typename U> WeakPtr& operator=(const WeakPtr<U>& o) { m_ref = o.m_ref.copyRef(); return *this; }
+    WeakPtr& operator=(std::nullptr_t) { m_ref = WeakReference<T>::create(nullptr); return *this; }
 
     T* operator->() const { return m_ref->get(); }
 
-    void forget() { m_ref = WeakReference<T>::create(nullptr); }
+    void clear() { m_ref = WeakReference<T>::create(nullptr); }
 
 private:
     friend class WeakPtrFactory<T>;

Modified: trunk/Tools/ChangeLog (180534 => 180535)


--- trunk/Tools/ChangeLog	2015-02-24 00:55:53 UTC (rev 180534)
+++ trunk/Tools/ChangeLog	2015-02-24 01:03:58 UTC (rev 180535)
@@ -1,5 +1,16 @@
 2015-02-23  Brent Fulgham  <[email protected]>
 
+        WTF::WeakPtr should rename 'forgot' to 'clear' and support nullptr assignment
+        https://bugs.webkit.org/show_bug.cgi?id=141935
+
+        Reviewed by Myles C. Maxfield.
+
+        * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
+        (TestWebKitAPI::TEST): Updated for 'clear' method rename, and added a few
+        tests for assigning from nullptr.
+
+2015-02-23  Brent Fulgham  <[email protected]>
+
         WTF::WeakPtr should have a 'forget' method.
         https://bugs.webkit.org/show_bug.cgi?id=141923
 

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/WeakPtr.cpp (180534 => 180535)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/WeakPtr.cpp	2015-02-24 00:55:53 UTC (rev 180534)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/WeakPtr.cpp	2015-02-24 01:03:58 UTC (rev 180535)
@@ -125,29 +125,41 @@
     int dummy2 = 7;
 
     WeakPtrFactory<int> outerFactory(&dummy2);
-    WeakPtr<int> weakPtr1, weakPtr2, weakPtr4;
+    WeakPtr<int> weakPtr1, weakPtr2, weakPtr3, weakPtr4;
     {
         WeakPtrFactory<int> innerFactory(&dummy);
         weakPtr1 = innerFactory.createWeakPtr();
         weakPtr2 = innerFactory.createWeakPtr();
+        weakPtr3 = innerFactory.createWeakPtr();
         EXPECT_EQ(weakPtr1.get(), &dummy);
         EXPECT_EQ(weakPtr2.get(), &dummy);
-        weakPtr1.forget();
+        EXPECT_EQ(weakPtr3.get(), &dummy);
+        weakPtr1.clear();
+        weakPtr3 = nullptr;
         EXPECT_NULL(weakPtr1.get());
         EXPECT_EQ(weakPtr2.get(), &dummy);
-        weakPtr1.forget();
+        EXPECT_NULL(weakPtr3.get());
+        weakPtr1.clear();
+        weakPtr3.clear();
         EXPECT_NULL(weakPtr1.get());
         EXPECT_EQ(weakPtr2.get(), &dummy);
-        WeakPtr<int> weakPtr3 = weakPtr2;
+        EXPECT_NULL(weakPtr3.get());
+        weakPtr3 = nullptr;
+        EXPECT_NULL(weakPtr1.get());
         EXPECT_EQ(weakPtr2.get(), &dummy);
-        EXPECT_EQ(weakPtr3.get(), &dummy);
-        weakPtr3.forget();
         EXPECT_NULL(weakPtr3.get());
-        EXPECT_EQ(weakPtr2.get(), &dummy);
+        
         weakPtr4 = weakPtr2;
         EXPECT_EQ(weakPtr2.get(), &dummy);
         EXPECT_EQ(weakPtr4.get(), &dummy);
 
+        WeakPtr<int> weakPtr5 = weakPtr2;
+        EXPECT_EQ(weakPtr2.get(), &dummy);
+        EXPECT_EQ(weakPtr5.get(), &dummy);
+        weakPtr5.clear();
+        EXPECT_NULL(weakPtr5.get());
+        EXPECT_EQ(weakPtr2.get(), &dummy);
+
         weakPtr4 = outerFactory.createWeakPtr();
         EXPECT_EQ(weakPtr2.get(), &dummy);
         EXPECT_EQ(weakPtr4.get(), &dummy2);
@@ -160,11 +172,19 @@
     WeakPtr<int> weakPtr5 = weakPtr4;
     EXPECT_EQ(weakPtr4.get(), &dummy2);
     EXPECT_EQ(weakPtr5.get(), &dummy2);
-    weakPtr5.forget();
+    weakPtr5.clear();
     EXPECT_NULL(weakPtr5.get());
     WeakPtr<int> weakPtr6 = weakPtr5;
     EXPECT_NULL(weakPtr6.get());
     EXPECT_EQ(weakPtr5.get(), weakPtr6.get());
+
+    WeakPtr<int> weakPtr7 = outerFactory.createWeakPtr();
+    EXPECT_EQ(weakPtr7.get(), &dummy2);
+    weakPtr7 = nullptr;
+    EXPECT_NULL(weakPtr7.get());
+
+    int doNotCopyMe = 152;
+    weakPtr7 = &doNotCopyMe;
 }
     
 } // namespace TestWebKitAPI
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to