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

Side by Side Diff: Source/platform/CrossThreadCopier.cpp

Issue 267323004: Oilpan: Move ThreadableWebSocketChannelClientWrapper to Oilpan's heap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/platform/CrossThreadCopier.h ('k') | no next file » | 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) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google 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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 22 matching lines...) Expand all
33 #include "platform/CrossThreadCopier.h" 33 #include "platform/CrossThreadCopier.h"
34 34
35 #include "platform/network/ResourceError.h" 35 #include "platform/network/ResourceError.h"
36 #include "platform/network/ResourceRequest.h" 36 #include "platform/network/ResourceRequest.h"
37 #include "platform/network/ResourceResponse.h" 37 #include "platform/network/ResourceResponse.h"
38 #include "platform/weborigin/KURL.h" 38 #include "platform/weborigin/KURL.h"
39 #include "wtf/text/WTFString.h" 39 #include "wtf/text/WTFString.h"
40 40
41 namespace WebCore { 41 namespace WebCore {
42 42
43 CrossThreadCopierBase<false, false, KURL>::Type CrossThreadCopierBase<false, fal se, KURL>::copy(const KURL& url) 43 CrossThreadCopierBase<false, false, false, KURL>::Type CrossThreadCopierBase<fal se, false, false, KURL>::copy(const KURL& url)
44 { 44 {
45 return url.copy(); 45 return url.copy();
46 } 46 }
47 47
48 CrossThreadCopierBase<false, false, String>::Type CrossThreadCopierBase<false, f alse, String>::copy(const String& str) 48 CrossThreadCopierBase<false, false, false, String>::Type CrossThreadCopierBase<f alse, false, false, String>::copy(const String& str)
49 { 49 {
50 return str.isolatedCopy(); 50 return str.isolatedCopy();
51 } 51 }
52 52
53 CrossThreadCopierBase<false, false, ResourceError>::Type CrossThreadCopierBase<f alse, false, ResourceError>::copy(const ResourceError& error) 53 CrossThreadCopierBase<false, false, false, ResourceError>::Type CrossThreadCopie rBase<false, false, false, ResourceError>::copy(const ResourceError& error)
54 { 54 {
55 return error.copy(); 55 return error.copy();
56 } 56 }
57 57
58 CrossThreadCopierBase<false, false, ResourceRequest>::Type CrossThreadCopierBase <false, false, ResourceRequest>::copy(const ResourceRequest& request) 58 CrossThreadCopierBase<false, false, false, ResourceRequest>::Type CrossThreadCop ierBase<false, false, false, ResourceRequest>::copy(const ResourceRequest& reque st)
59 { 59 {
60 return request.copyData(); 60 return request.copyData();
61 } 61 }
62 62
63 CrossThreadCopierBase<false, false, ResourceResponse>::Type CrossThreadCopierBas e<false, false, ResourceResponse>::copy(const ResourceResponse& response) 63 CrossThreadCopierBase<false, false, false, ResourceResponse>::Type CrossThreadCo pierBase<false, false, false, ResourceResponse>::copy(const ResourceResponse& re sponse)
64 { 64 {
65 return response.copyData(); 65 return response.copyData();
66 } 66 }
67 67
68 // Test CrossThreadCopier using COMPILE_ASSERT. 68 // Test CrossThreadCopier using COMPILE_ASSERT.
69 69
70 // Verify that ThreadSafeRefCounted objects get handled correctly. 70 // Verify that ThreadSafeRefCounted objects get handled correctly.
71 class CopierThreadSafeRefCountedTest : public ThreadSafeRefCounted<CopierThreadS afeRefCountedTest> { 71 class CopierThreadSafeRefCountedTest : public ThreadSafeRefCounted<CopierThreadS afeRefCountedTest> {
72 }; 72 };
73 73
74 COMPILE_ASSERT((WTF::IsSameType< 74 COMPILE_ASSERT((WTF::IsSameType<
75 PassRefPtr<CopierThreadSafeRefCountedTest>, 75 PassRefPtr<CopierThreadSafeRefCountedTest>,
76 CrossThreadCopier<PassRefPtr<CopierThreadSafeRefCountedTest> > ::Type 76 CrossThreadCopier<PassRefPtr<CopierThreadSafeRefCountedTest> > ::Type
77 >::value), 77 >::value),
78 PassRefPtrTest); 78 PassRefPtrTest);
79 COMPILE_ASSERT((WTF::IsSameType< 79 COMPILE_ASSERT((WTF::IsSameType<
80 PassRefPtr<CopierThreadSafeRefCountedTest>, 80 PassRefPtr<CopierThreadSafeRefCountedTest>,
81 CrossThreadCopier<RefPtr<CopierThreadSafeRefCountedTest> >::Ty pe 81 CrossThreadCopier<RefPtr<CopierThreadSafeRefCountedTest> >::Ty pe
82 >::value), 82 >::value),
83 RefPtrTest); 83 RefPtrTest);
84 COMPILE_ASSERT((WTF::IsSameType< 84 COMPILE_ASSERT((WTF::IsSameType<
85 PassRefPtr<CopierThreadSafeRefCountedTest>, 85 PassRefPtr<CopierThreadSafeRefCountedTest>,
86 CrossThreadCopier<CopierThreadSafeRefCountedTest*>::Type 86 CrossThreadCopier<CopierThreadSafeRefCountedTest*>::Type
87 >::value), 87 >::value),
88 RawPointerTest); 88 RawPointerTest);
89 89
90 90
91 // Add a generic specialization which will let's us verify that no other templat e matches. 91 // Add a generic specialization which will let's us verify that no other templat e matches.
92 template<typename T> struct CrossThreadCopierBase<false, false, T> { 92 template<typename T> struct CrossThreadCopierBase<false, false, false, T> {
93 typedef int Type; 93 typedef int Type;
94 }; 94 };
95 95
96 // Verify that RefCounted objects only match our generic template which exposes Type as int. 96 // Verify that RefCounted objects only match our generic template which exposes Type as int.
97 class CopierRefCountedTest : public RefCounted<CopierRefCountedTest> { 97 class CopierRefCountedTest : public RefCounted<CopierRefCountedTest> {
98 }; 98 };
99 99
100 COMPILE_ASSERT((WTF::IsSameType< 100 COMPILE_ASSERT((WTF::IsSameType<
101 int, 101 int,
102 CrossThreadCopier<PassRefPtr<CopierRefCountedTest> >::Type 102 CrossThreadCopier<PassRefPtr<CopierRefCountedTest> >::Type
(...skipping 20 matching lines...) Expand all
123 PassOwnPtrTest); 123 PassOwnPtrTest);
124 124
125 // Verify that PassOwnPtr does not get passed through. 125 // Verify that PassOwnPtr does not get passed through.
126 COMPILE_ASSERT((WTF::IsSameType< 126 COMPILE_ASSERT((WTF::IsSameType<
127 int, 127 int,
128 CrossThreadCopier<OwnPtr<float> >::Type 128 CrossThreadCopier<OwnPtr<float> >::Type
129 >::value), 129 >::value),
130 OwnPtrTest); 130 OwnPtrTest);
131 131
132 } // namespace WebCore 132 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/platform/CrossThreadCopier.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698