Title: [197143] trunk/Source/WTF
Revision
197143
Author
commit-qu...@webkit.org
Date
2016-02-25 15:59:21 -0800 (Thu, 25 Feb 2016)

Log Message

Unreviewed, rolling out r197137.
https://bugs.webkit.org/show_bug.cgi?id=154700

broke windows build (Requested by alexchristensen on #webkit).

Reverted changeset:

"Replace RefCounter::Token implementation with RefPtr"
https://bugs.webkit.org/show_bug.cgi?id=154698
http://trac.webkit.org/changeset/197137

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (197142 => 197143)


--- trunk/Source/WTF/ChangeLog	2016-02-25 23:52:07 UTC (rev 197142)
+++ trunk/Source/WTF/ChangeLog	2016-02-25 23:59:21 UTC (rev 197143)
@@ -1,3 +1,16 @@
+2016-02-25  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r197137.
+        https://bugs.webkit.org/show_bug.cgi?id=154700
+
+        broke windows build (Requested by alexchristensen on #webkit).
+
+        Reverted changeset:
+
+        "Replace RefCounter::Token implementation with RefPtr"
+        https://bugs.webkit.org/show_bug.cgi?id=154698
+        http://trac.webkit.org/changeset/197137
+
 2016-02-25  Gavin Barraclough  <barraclo...@apple.com>
 
         Replace RefCounter::Token implementation with RefPtr

Modified: trunk/Source/WTF/wtf/RefCounter.h (197142 => 197143)


--- trunk/Source/WTF/wtf/RefCounter.h	2016-02-25 23:52:07 UTC (rev 197142)
+++ trunk/Source/WTF/wtf/RefCounter.h	2016-02-25 23:59:21 UTC (rev 197143)
@@ -56,14 +56,32 @@
     };
 
 public:
-    using Token = RefPtr<Count>;
+    class Token  {
+    public:
+        Token() { }
+        Token(std::nullptr_t) { }
+        inline Token(const Token&);
+        inline Token(Token&&);
 
+        inline Token& operator=(std::nullptr_t);
+        inline Token& operator=(const Token&);
+        inline Token& operator=(Token&&);
+
+        explicit operator bool() const { return m_ptr; }
+
+    private:
+        friend class RefCounter;
+        inline Token(Count* count);
+
+        RefPtr<Count> m_ptr;
+    };
+
     WTF_EXPORT_PRIVATE RefCounter(std::function<void(bool)> = [](bool) { });
     WTF_EXPORT_PRIVATE ~RefCounter();
 
     Token count() const
     {
-        return m_count;
+        return Token(m_count);
     }
 
     unsigned value() const
@@ -125,6 +143,45 @@
         delete m_count;
 }
 
+template<class T>
+inline RefCounter<T>::Token::Token(Count* count)
+    : m_ptr(count)
+{
+}
+
+template<class T>
+inline RefCounter<T>::Token::Token(const RefCounter::Token& token)
+    : m_ptr(token.m_ptr)
+{
+}
+
+template<class T>
+inline RefCounter<T>::Token::Token(RefCounter::Token&& token)
+    : m_ptr(token.m_ptr)
+{
+}
+
+template<class T>
+inline typename RefCounter<T>::Token& RefCounter<T>::Token::operator=(std::nullptr_t)
+{
+    m_ptr = nullptr;
+    return *this;
+}
+
+template<class T>
+inline typename RefCounter<T>::Token& RefCounter<T>::Token::operator=(const RefCounter<T>::Token& token)
+{
+    m_ptr = token.m_ptr;
+    return *this;
+}
+
+template<class T>
+inline typename RefCounter<T>::Token& RefCounter<T>::Token::operator=(RefCounter<T>::Token&& token)
+{
+    m_ptr = token.m_ptr;
+    return *this;
+}
+
 } // namespace WTF
 
 using WTF::RefCounter;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to