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

Side by Side Diff: Source/platform/heap/Visitor.h

Issue 429793003: Fix template bugs that prevent rolling gtest DEPS in Chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 4 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 | « Source/platform/graphics/DeferredImageDecoderTest.cpp ('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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 template<typename T> class GarbageCollected; 132 template<typename T> class GarbageCollected;
133 class GarbageCollectedMixin; 133 class GarbageCollectedMixin;
134 template<typename T, bool = WTF::IsSubclassOfTemplate<typename WTF::RemoveConst< T>::Type, GarbageCollected>::value> class NeedsAdjustAndMark; 134 template<typename T, bool = WTF::IsSubclassOfTemplate<typename WTF::RemoveConst< T>::Type, GarbageCollected>::value> class NeedsAdjustAndMark;
135 135
136 template<typename T> 136 template<typename T>
137 class NeedsAdjustAndMark<T, true> { 137 class NeedsAdjustAndMark<T, true> {
138 public: 138 public:
139 static const bool value = false; 139 static const bool value = false;
140 }; 140 };
141 141
142 template <typename T> const bool NeedsAdjustAndMark<T, true>::value;
Ken Russell (switch to Gerrit) 2014/07/30 22:21:29 Why is this out-of-line definition needed? Will th
Nico 2014/07/30 22:26:02 Yes, that seems wrong.
Nick Bray (chromium) 2014/07/30 22:33:45 It isn't technically "out-of-line" because the inl
143
142 template<typename T> 144 template<typename T>
143 class NeedsAdjustAndMark<T, false> { 145 class NeedsAdjustAndMark<T, false> {
144 public: 146 public:
145 static const bool value = WTF::IsSubclass<typename WTF::RemoveConst<T>::Type , GarbageCollectedMixin>::value; 147 static const bool value = WTF::IsSubclass<typename WTF::RemoveConst<T>::Type , GarbageCollectedMixin>::value;
146 }; 148 };
147 149
150 template <typename T> const bool NeedsAdjustAndMark<T, false>::value;
151
148 template<typename T, bool = NeedsAdjustAndMark<T>::value> class DefaultTraceTrai t; 152 template<typename T, bool = NeedsAdjustAndMark<T>::value> class DefaultTraceTrai t;
149 153
150 // The TraceTrait is used to specify how to mark an object pointer and 154 // The TraceTrait is used to specify how to mark an object pointer and
151 // how to trace all of the pointers in the object. 155 // how to trace all of the pointers in the object.
152 // 156 //
153 // By default, the 'trace' method implemented on an object itself is 157 // By default, the 'trace' method implemented on an object itself is
154 // used to trace the pointers to other heap objects inside the object. 158 // used to trace the pointers to other heap objects inside the object.
155 // 159 //
156 // However, the TraceTrait can be specialized to use a different 160 // However, the TraceTrait can be specialized to use a different
157 // implementation. A common case where a TraceTrait specialization is 161 // implementation. A common case where a TraceTrait specialization is
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 struct GCInfoTrait { 634 struct GCInfoTrait {
631 static const GCInfo* get() 635 static const GCInfo* get()
632 { 636 {
633 return GCInfoAtBase<typename GetGarbageCollectedBase<T>::type>::get(); 637 return GCInfoAtBase<typename GetGarbageCollectedBase<T>::type>::get();
634 } 638 }
635 }; 639 };
636 640
637 } 641 }
638 642
639 #endif 643 #endif
OLDNEW
« no previous file with comments | « Source/platform/graphics/DeferredImageDecoderTest.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698