Stack overflow at RefPtr::release on Windows port since r201782
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Jun 2016 16:27:50 +0000 (16:27 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Jun 2016 16:27:50 +0000 (16:27 +0000)
https://bugs.webkit.org/show_bug.cgi?id=158687

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-06-13
Reviewed by Chris Dumez.

RefPtr::release calls RefPtr::RefPtr, and RefPtr::RefPtr calls
RefPtr::release.

RefPtr::RefPtr does not need to call RefPtr::release.

* wtf/RefPtr.h:
(WTF::RefPtr::RefPtr): Do not call RefPtr::release.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201991 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/RefPtr.h

index dba85b5..0c0c3d8 100644 (file)
@@ -1,3 +1,18 @@
+2016-06-13  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        Stack overflow at RefPtr::release on Windows port since r201782
+        https://bugs.webkit.org/show_bug.cgi?id=158687
+
+        Reviewed by Chris Dumez.
+
+        RefPtr::release calls RefPtr::RefPtr, and RefPtr::RefPtr calls
+        RefPtr::release.
+
+        RefPtr::RefPtr does not need to call RefPtr::release.
+
+        * wtf/RefPtr.h:
+        (WTF::RefPtr::RefPtr): Do not call RefPtr::release.
+
 2016-06-11  Myles C. Maxfield  <mmaxfield@apple.com>
 
         Addressing post-review comments after r201978.
index de47b66..a8cb6c9 100644 (file)
@@ -49,8 +49,8 @@ public:
     ALWAYS_INLINE RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(m_ptr); }
     template<typename U> RefPtr(const RefPtr<U>& o) : m_ptr(o.get()) { refIfNotNull(m_ptr); }
 
-    ALWAYS_INLINE RefPtr(RefPtr&& o) : m_ptr(o.release().leakRef()) { }
-    template<typename U> RefPtr(RefPtr<U>&& o) : m_ptr(o.release().leakRef()) { }
+    ALWAYS_INLINE RefPtr(RefPtr&& o) : m_ptr(o.leakRef()) { }
+    template<typename U> RefPtr(RefPtr<U>&& o) : m_ptr(o.leakRef()) { }
 
     // See comments in PassRefPtr.h for an explanation of why this takes a const reference.
     template<typename U> RefPtr(const PassRefPtr<U>&);