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

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

Issue 398793002: Oilpan: Remove support for tracing of off-heap ListHashSets. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix number in test. Created 6 years, 5 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/heap/HeapTest.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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 { 297 {
298 OffHeapCollectionTraceTrait<Vector<T, inlineCapacity, WTF::DefaultAlloca tor> >::trace(this, vector); 298 OffHeapCollectionTraceTrait<Vector<T, inlineCapacity, WTF::DefaultAlloca tor> >::trace(this, vector);
299 } 299 }
300 300
301 template<typename T, typename U, typename V> 301 template<typename T, typename U, typename V>
302 void trace(const HashSet<T, U, V>& hashSet) 302 void trace(const HashSet<T, U, V>& hashSet)
303 { 303 {
304 OffHeapCollectionTraceTrait<HashSet<T, U, V> >::trace(this, hashSet); 304 OffHeapCollectionTraceTrait<HashSet<T, U, V> >::trace(this, hashSet);
305 } 305 }
306 306
307 template<typename T, size_t inlineCapacity, typename U>
308 void trace(const ListHashSet<T, inlineCapacity, U>& hashSet)
309 {
310 OffHeapCollectionTraceTrait<ListHashSet<T, inlineCapacity, U> >::trace(t his, hashSet);
311 }
312
313 template<typename T, size_t N> 307 template<typename T, size_t N>
314 void trace(const Deque<T, N>& deque) 308 void trace(const Deque<T, N>& deque)
315 { 309 {
316 OffHeapCollectionTraceTrait<Deque<T, N> >::trace(this, deque); 310 OffHeapCollectionTraceTrait<Deque<T, N> >::trace(this, deque);
317 } 311 }
318 312
319 template<typename T, typename U, typename V, typename W, typename X> 313 template<typename T, typename U, typename V, typename W, typename X>
320 void trace(const HashMap<T, U, V, W, X, WTF::DefaultAllocator>& map) 314 void trace(const HashMap<T, U, V, W, X, WTF::DefaultAllocator>& map)
321 { 315 {
322 OffHeapCollectionTraceTrait<HashMap<T, U, V, W, X, WTF::DefaultAllocator > >::trace(this, map); 316 OffHeapCollectionTraceTrait<HashMap<T, U, V, W, X, WTF::DefaultAllocator > >::trace(this, map);
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 HashSet& iterSet = const_cast<HashSet&>(set); 457 HashSet& iterSet = const_cast<HashSet&>(set);
464 for (typename HashSet::iterator it = iterSet.begin(), end = iterSet. end(); it != end; ++it) { 458 for (typename HashSet::iterator it = iterSet.begin(), end = iterSet. end(); it != end; ++it) {
465 const T& t = *it; 459 const T& t = *it;
466 CollectionBackingTraceTrait<WTF::ShouldBeTraced<Traits>::value, Traits::weakHandlingFlag, WTF::WeakPointersActWeak, T, Traits>::trace(visitor, c onst_cast<T&>(t)); 460 CollectionBackingTraceTrait<WTF::ShouldBeTraced<Traits>::value, Traits::weakHandlingFlag, WTF::WeakPointersActWeak, T, Traits>::trace(visitor, c onst_cast<T&>(t));
467 } 461 }
468 } 462 }
469 COMPILE_ASSERT(Traits::weakHandlingFlag == WTF::NoWeakHandlingInCollecti ons, WeakOffHeapCollectionsConsideredDangerous0); 463 COMPILE_ASSERT(Traits::weakHandlingFlag == WTF::NoWeakHandlingInCollecti ons, WeakOffHeapCollectionsConsideredDangerous0);
470 } 464 }
471 }; 465 };
472 466
473 template<typename T, size_t inlineCapacity, typename HashFunctions>
474 struct OffHeapCollectionTraceTrait<ListHashSet<T, inlineCapacity, HashFunctions> > {
475 typedef WTF::ListHashSet<T, inlineCapacity, HashFunctions> ListHashSet;
476
477 static void trace(Visitor* visitor, const ListHashSet& set)
478 {
479 if (set.isEmpty())
480 return;
481 ListHashSet& iterSet = const_cast<ListHashSet&>(set);
482 for (typename ListHashSet::iterator it = iterSet.begin(), end = iterSet. end(); it != end; ++it)
483 visitor->trace(*it);
484 }
485 };
486
487 template<typename Key, typename Value, typename HashFunctions, typename KeyTrait s, typename ValueTraits> 467 template<typename Key, typename Value, typename HashFunctions, typename KeyTrait s, typename ValueTraits>
488 struct OffHeapCollectionTraceTrait<WTF::HashMap<Key, Value, HashFunctions, KeyTr aits, ValueTraits, WTF::DefaultAllocator> > { 468 struct OffHeapCollectionTraceTrait<WTF::HashMap<Key, Value, HashFunctions, KeyTr aits, ValueTraits, WTF::DefaultAllocator> > {
489 typedef WTF::HashMap<Key, Value, HashFunctions, KeyTraits, ValueTraits, WTF: :DefaultAllocator> HashMap; 469 typedef WTF::HashMap<Key, Value, HashFunctions, KeyTraits, ValueTraits, WTF: :DefaultAllocator> HashMap;
490 470
491 static void trace(Visitor* visitor, const HashMap& map) 471 static void trace(Visitor* visitor, const HashMap& map)
492 { 472 {
493 if (map.isEmpty()) 473 if (map.isEmpty())
494 return; 474 return;
495 if (WTF::ShouldBeTraced<KeyTraits>::value || WTF::ShouldBeTraced<ValueTr aits>::value) { 475 if (WTF::ShouldBeTraced<KeyTraits>::value || WTF::ShouldBeTraced<ValueTr aits>::value) {
496 HashMap& iterMap = const_cast<HashMap&>(map); 476 HashMap& iterMap = const_cast<HashMap&>(map);
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 struct GCInfoTrait { 683 struct GCInfoTrait {
704 static const GCInfo* get() 684 static const GCInfo* get()
705 { 685 {
706 return GCInfoAtBase<typename GetGarbageCollectedBase<T>::type>::get(); 686 return GCInfoAtBase<typename GetGarbageCollectedBase<T>::type>::get();
707 } 687 }
708 }; 688 };
709 689
710 } 690 }
711 691
712 #endif 692 #endif
OLDNEW
« no previous file with comments | « Source/platform/heap/HeapTest.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698