OLD | NEW |
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 <algorithm> | |
27 #include "wtf/HashTableDeletedValueType.h" | 26 #include "wtf/HashTableDeletedValueType.h" |
28 #include "wtf/PassRefPtr.h" | 27 #include "wtf/PassRefPtr.h" |
29 #include "wtf/RawPtr.h" | 28 #include "wtf/RawPtr.h" |
| 29 #include <algorithm> |
| 30 #include <utility> |
30 | 31 |
31 namespace WTF { | 32 namespace WTF { |
32 | 33 |
33 template<typename T> class PassRefPtr; | 34 template<typename T> class PassRefPtr; |
34 | 35 |
35 template<typename T> class RefPtr { | 36 template<typename T> class RefPtr { |
36 public: | 37 public: |
37 ALWAYS_INLINE RefPtr() : m_ptr(0) { } | 38 ALWAYS_INLINE RefPtr() : m_ptr(0) { } |
38 ALWAYS_INLINE RefPtr(std::nullptr_t) : m_ptr(0) { } | 39 ALWAYS_INLINE RefPtr(std::nullptr_t) : m_ptr(0) { } |
39 ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } | 40 ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); } |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 private: | 210 private: |
210 T* m_ptr; | 211 T* m_ptr; |
211 }; | 212 }; |
212 | 213 |
213 } // namespace WTF | 214 } // namespace WTF |
214 | 215 |
215 using WTF::RefPtr; | 216 using WTF::RefPtr; |
216 using WTF::static_pointer_cast; | 217 using WTF::static_pointer_cast; |
217 | 218 |
218 #endif // WTF_RefPtr_h | 219 #endif // WTF_RefPtr_h |
OLD | NEW |