Title: [149341] trunk/Source/WTF
- Revision
- 149341
- Author
- [email protected]
- Date
- 2013-04-29 17:46:14 -0700 (Mon, 29 Apr 2013)
Log Message
It should be an error to use adoptPtr with RefCounted subclasses
https://bugs.webkit.org/show_bug.cgi?id=115389
Reviewed by Benjamin Poulain.
* wtf/PassOwnPtr.h:
(WTF::adoptPtr):
Add COMPILE_ASSERTs.
Modified Paths
Diff
Modified: trunk/Source/WTF/ChangeLog (149340 => 149341)
--- trunk/Source/WTF/ChangeLog 2013-04-30 00:34:18 UTC (rev 149340)
+++ trunk/Source/WTF/ChangeLog 2013-04-30 00:46:14 UTC (rev 149341)
@@ -1,3 +1,14 @@
+2013-04-29 Anders Carlsson <[email protected]>
+
+ It should be an error to use adoptPtr with RefCounted subclasses
+ https://bugs.webkit.org/show_bug.cgi?id=115389
+
+ Reviewed by Benjamin Poulain.
+
+ * wtf/PassOwnPtr.h:
+ (WTF::adoptPtr):
+ Add COMPILE_ASSERTs.
+
2013-04-29 Patrick Gansterer <[email protected]>
[WIN] Add workaround for UNUSED_PARAM()
Modified: trunk/Source/WTF/wtf/PassOwnPtr.h (149340 => 149341)
--- trunk/Source/WTF/wtf/PassOwnPtr.h 2013-04-30 00:34:18 UTC (rev 149340)
+++ trunk/Source/WTF/wtf/PassOwnPtr.h 2013-04-30 00:46:14 UTC (rev 149341)
@@ -39,6 +39,9 @@
template<typename T> class PassOwnPtr;
template<typename T> PassOwnPtr<T> adoptPtr(T*);
+ class RefCountedBase;
+ class ThreadSafeRefCountedBase;
+
template<typename T> class PassOwnPtr {
public:
typedef typename RemovePointer<T>::Type ValueType;
@@ -144,6 +147,9 @@
template<typename T> inline PassOwnPtr<T> adoptPtr(T* ptr)
{
+ COMPILE_ASSERT(!(IsSubclass<T, RefCountedBase>::value), DoNotUseAdoptPtrWithRefCounted);
+ COMPILE_ASSERT(!(IsSubclass<T, ThreadSafeRefCountedBase>::value), DoNotUseAdoptPtrWithThreadSafeRefCounted);
+
return PassOwnPtr<T>(ptr);
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes