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