Title: [185887] trunk
- Revision
- 185887
- Author
- [email protected]
- Date
- 2015-06-23 15:46:56 -0700 (Tue, 23 Jun 2015)
Log Message
Add operator! and copy/move constructors to WeakObjCPtr
https://bugs.webkit.org/show_bug.cgi?id=146255
Reviewed by Andreas Kling.
Source/WebKit2:
* Shared/mac/WeakObjCPtr.h:
(WebKit::WeakObjCPtr::WeakObjCPtr):
(WebKit::WeakObjCPtr::operator!):
Tools:
* TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm:
(TEST):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (185886 => 185887)
--- trunk/Source/WebKit2/ChangeLog 2015-06-23 22:09:05 UTC (rev 185886)
+++ trunk/Source/WebKit2/ChangeLog 2015-06-23 22:46:56 UTC (rev 185887)
@@ -1,3 +1,14 @@
+2015-06-23 Anders Carlsson <[email protected]>
+
+ Add operator! and copy/move constructors to WeakObjCPtr
+ https://bugs.webkit.org/show_bug.cgi?id=146255
+
+ Reviewed by Andreas Kling.
+
+ * Shared/mac/WeakObjCPtr.h:
+ (WebKit::WeakObjCPtr::WeakObjCPtr):
+ (WebKit::WeakObjCPtr::operator!):
+
2015-06-23 Antti Koivisto <[email protected]>
CrashTracer: com.apple.WebKit.Networking at _javascript_Core: WTF::String::isolatedCopy const &
Modified: trunk/Source/WebKit2/Shared/mac/WeakObjCPtr.h (185886 => 185887)
--- trunk/Source/WebKit2/Shared/mac/WeakObjCPtr.h 2015-06-23 22:09:05 UTC (rev 185886)
+++ trunk/Source/WebKit2/Shared/mac/WeakObjCPtr.h 2015-06-23 22:46:56 UTC (rev 185887)
@@ -37,6 +37,8 @@
id objc_loadWeakRetained(id*);
id objc_initWeak(id*, id);
void objc_destroyWeak(id*);
+void objc_copyWeak(id*, id*);
+void objc_moveWeak(id*, id*);
}
#endif
@@ -56,6 +58,16 @@
objc_initWeak(&m_weakReference, ptr);
}
+ WeakObjCPtr(const WeakObjCPtr& other)
+ {
+ objc_copyWeak(&m_weakReference, const_cast<id*>(&other.m_weakReference));
+ }
+
+ WeakObjCPtr(WeakObjCPtr&& other)
+ {
+ objc_moveWeak(&m_weakReference, &other.m_weakReference);
+ }
+
~WeakObjCPtr()
{
objc_destroyWeak(&m_weakReference);
@@ -68,6 +80,11 @@
return *this;
}
+ bool operator!() const
+ {
+ return !get();
+ }
+
RetainPtr<ValueType> get() const
{
return adoptNS(objc_loadWeakRetained(const_cast<id*>(&m_weakReference)));
Modified: trunk/Tools/ChangeLog (185886 => 185887)
--- trunk/Tools/ChangeLog 2015-06-23 22:09:05 UTC (rev 185886)
+++ trunk/Tools/ChangeLog 2015-06-23 22:46:56 UTC (rev 185887)
@@ -1,3 +1,13 @@
+2015-06-23 Anders Carlsson <[email protected]>
+
+ Add operator! and copy/move constructors to WeakObjCPtr
+ https://bugs.webkit.org/show_bug.cgi?id=146255
+
+ Reviewed by Andreas Kling.
+
+ * TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm:
+ (TEST):
+
2015-06-23 Simon Fraser <[email protected]>
Expose some more rendering progress events, and have MiniBrowser log for each of them
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm (185886 => 185887)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm 2015-06-23 22:09:05 UTC (rev 185886)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm 2015-06-23 22:46:56 UTC (rev 185887)
@@ -106,3 +106,49 @@
EXPECT_EQ(weak.get(), (void*)nil);
}
+
+TEST(WebKit2_WeakObjCPtr, LogicalNegation)
+{
+ id object = [[NSObject alloc] init];
+ WeakObjCPtr<id> weak(object);
+
+ EXPECT_FALSE(!weak);
+
+ [object release];
+
+ EXPECT_TRUE(!weak);
+}
+
+TEST(WebKit2_WeakObjCPtr, CopyConstructor)
+{
+ id object = [[NSObject alloc] init];
+ WeakObjCPtr<id> weak1(object);
+ WeakObjCPtr<id> weak2(weak1);
+
+ EXPECT_EQ(weak1.get(), object);
+ EXPECT_EQ(weak2.get(), object);
+
+ {
+ WeakObjCPtr<id> weak3(weak2);
+ }
+
+ [object release];
+
+ EXPECT_EQ(weak1.get(), (void*)nil);
+ EXPECT_EQ(weak2.get(), (void*)nil);
+}
+
+TEST(WebKit2_WeakObjCPtr, MoveConstructor)
+{
+ id object = [[NSObject alloc] init];
+ WeakObjCPtr<id> weak1(object);
+ WeakObjCPtr<id> weak2(WTF::move(weak1));
+
+ EXPECT_EQ(weak1.get(), (void*)nil);
+ EXPECT_EQ(weak2.get(), object);
+
+ [object release];
+
+ EXPECT_EQ(weak1.get(), (void*)nil);
+ EXPECT_EQ(weak2.get(), (void*)nil);
+}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes