OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 26 matching lines...) Expand all Loading... |
37 // variant for transfer of ownership | 37 // variant for transfer of ownership |
38 | 38 |
39 namespace WTF { | 39 namespace WTF { |
40 | 40 |
41 template<typename T> struct PassTraits { | 41 template<typename T> struct PassTraits { |
42 typedef T Type; | 42 typedef T Type; |
43 typedef T PassType; | 43 typedef T PassType; |
44 static Type& transfer(Type& value) { return value; } | 44 static Type& transfer(Type& value) { return value; } |
45 }; | 45 }; |
46 | 46 |
47 template<typename T> struct PassTraits<OwnPtr<T> > { | 47 template<typename T> struct PassTraits<OwnPtr<T>> { |
48 typedef OwnPtr<T> Type; | 48 typedef OwnPtr<T> Type; |
49 typedef PassOwnPtr<T> PassType; | 49 typedef PassOwnPtr<T> PassType; |
50 static PassType transfer(Type& value) { return value.release(); } | 50 static PassType transfer(Type& value) { return value.release(); } |
51 }; | 51 }; |
52 | 52 |
53 template<typename T> struct PassTraits<RefPtr<T> > { | 53 template<typename T> struct PassTraits<RefPtr<T>> { |
54 typedef RefPtr<T> Type; | 54 typedef RefPtr<T> Type; |
55 typedef PassRefPtr<T> PassType; | 55 typedef PassRefPtr<T> PassType; |
56 static PassType transfer(Type& value) { return value.release(); } | 56 static PassType transfer(Type& value) { return value.release(); } |
57 }; | 57 }; |
58 | 58 |
59 } // namespace WTF | 59 } // namespace WTF |
60 | 60 |
61 using WTF::PassTraits; | 61 using WTF::PassTraits; |
62 | 62 |
63 #endif // WTF_PassTraits_h | 63 #endif // WTF_PassTraits_h |
OLD | NEW |