Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Side by Side Diff: third_party/WebKit/Source/wtf/RefPtr.h

Issue 1884113002: Remove RawPtr.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix HeapTest.Bind expectation Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/wtf/RawPtr.h ('k') | third_party/WebKit/Source/wtf/TerminatedArray.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA. 17 * Boston, MA 02110-1301, USA.
18 * 18 *
19 */ 19 */
20 20
21 // RefPtr and PassRefPtr are documented at http://webkit.org/coding/RefPtr.html 21 // RefPtr and PassRefPtr are documented at http://webkit.org/coding/RefPtr.html
22 22
23 #ifndef WTF_RefPtr_h 23 #ifndef WTF_RefPtr_h
24 #define WTF_RefPtr_h 24 #define WTF_RefPtr_h
25 25
26 #include "wtf/Allocator.h" 26 #include "wtf/Allocator.h"
27 #include "wtf/HashTableDeletedValueType.h" 27 #include "wtf/HashTableDeletedValueType.h"
28 #include "wtf/PassRefPtr.h" 28 #include "wtf/PassRefPtr.h"
29 #include "wtf/RawPtr.h"
30 #include <algorithm> 29 #include <algorithm>
31 #include <utility> 30 #include <utility>
32 31
33 namespace WTF { 32 namespace WTF {
34 33
35 template <typename T> class PassRefPtr; 34 template <typename T> class PassRefPtr;
36 template <typename T> class RefPtrValuePeeker; 35 template <typename T> class RefPtrValuePeeker;
37 36
38 template <typename T> class RefPtr { 37 template <typename T> class RefPtr {
39 USING_FAST_MALLOC(RefPtr); 38 USING_FAST_MALLOC(RefPtr);
40 public: 39 public:
41 ALWAYS_INLINE RefPtr() : m_ptr(nullptr) {} 40 ALWAYS_INLINE RefPtr() : m_ptr(nullptr) {}
42 ALWAYS_INLINE RefPtr(std::nullptr_t) : m_ptr(nullptr) {} 41 ALWAYS_INLINE RefPtr(std::nullptr_t) : m_ptr(nullptr) {}
43 ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } 42 ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); }
44 template <typename U> RefPtr(const RawPtr<U>& ptr, EnsurePtrConvertibleArgDe cl(U, T)) : m_ptr(ptr.get()) { refIfNotNull(m_ptr); }
45 ALWAYS_INLINE explicit RefPtr(T& ref) : m_ptr(&ref) { m_ptr->ref(); } 43 ALWAYS_INLINE explicit RefPtr(T& ref) : m_ptr(&ref) { m_ptr->ref(); }
46 ALWAYS_INLINE RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(m_ptr) ; } 44 ALWAYS_INLINE RefPtr(const RefPtr& o) : m_ptr(o.m_ptr) { refIfNotNull(m_ptr) ; }
47 template <typename U> RefPtr(const RefPtr<U>& o, EnsurePtrConvertibleArgDecl (U, T)) : m_ptr(o.get()) { refIfNotNull(m_ptr); } 45 template <typename U> RefPtr(const RefPtr<U>& o, EnsurePtrConvertibleArgDecl (U, T)) : m_ptr(o.get()) { refIfNotNull(m_ptr); }
48 RefPtr(RefPtr&& o) : m_ptr(o.m_ptr) { o.m_ptr = nullptr; } 46 RefPtr(RefPtr&& o) : m_ptr(o.m_ptr) { o.m_ptr = nullptr; }
49 47
50 // See comments in PassRefPtr.h for an explanation of why this takes a const 48 // See comments in PassRefPtr.h for an explanation of why this takes a const
51 // reference. 49 // reference.
52 template <typename U> RefPtr(const PassRefPtr<U>&, EnsurePtrConvertibleArgDe cl(U, T)); 50 template <typename U> RefPtr(const PassRefPtr<U>&, EnsurePtrConvertibleArgDe cl(U, T));
53 51
54 // Hash table deleted values, which are only constructed and never copied or 52 // Hash table deleted values, which are only constructed and never copied or
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 private: 172 private:
175 T* m_ptr; 173 T* m_ptr;
176 }; 174 };
177 175
178 } // namespace WTF 176 } // namespace WTF
179 177
180 using WTF::RefPtr; 178 using WTF::RefPtr;
181 using WTF::static_pointer_cast; 179 using WTF::static_pointer_cast;
182 180
183 #endif // WTF_RefPtr_h 181 #endif // WTF_RefPtr_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/RawPtr.h ('k') | third_party/WebKit/Source/wtf/TerminatedArray.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698