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

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

Issue 858663002: Fix template angle bracket syntax in platform (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 11 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/heap/HeapTest.cpp ('k') | Source/platform/image-decoders/gif/GIFImageReader.h » ('j') | 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 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 template<typename T> 424 template<typename T>
425 void registerWeakCell(T** cell) 425 void registerWeakCell(T** cell)
426 { 426 {
427 Derived::fromHelper(this)->registerWeakCellWithCallback(reinterpret_cast <void**>(cell), &handleWeakCell<T>); 427 Derived::fromHelper(this)->registerWeakCellWithCallback(reinterpret_cast <void**>(cell), &handleWeakCell<T>);
428 } 428 }
429 429
430 // The following trace methods are for off-heap collections. 430 // The following trace methods are for off-heap collections.
431 template<typename T, size_t inlineCapacity> 431 template<typename T, size_t inlineCapacity>
432 void trace(const Vector<T, inlineCapacity>& vector) 432 void trace(const Vector<T, inlineCapacity>& vector)
433 { 433 {
434 OffHeapCollectionTraceTrait<Vector<T, inlineCapacity, WTF::DefaultAlloca tor> >::trace(Derived::fromHelper(this), vector); 434 OffHeapCollectionTraceTrait<Vector<T, inlineCapacity, WTF::DefaultAlloca tor>>::trace(Derived::fromHelper(this), vector);
435 } 435 }
436 436
437 template<typename T, size_t N> 437 template<typename T, size_t N>
438 void trace(const Deque<T, N>& deque) 438 void trace(const Deque<T, N>& deque)
439 { 439 {
440 OffHeapCollectionTraceTrait<Deque<T, N> >::trace(Derived::fromHelper(thi s), deque); 440 OffHeapCollectionTraceTrait<Deque<T, N>>::trace(Derived::fromHelper(this ), deque);
441 } 441 }
442 442
443 #if !ENABLE(OILPAN) 443 #if !ENABLE(OILPAN)
444 // These trace methods are needed to allow compiling and calling trace on 444 // These trace methods are needed to allow compiling and calling trace on
445 // transition types. We need to support calls in the non-oilpan build 445 // transition types. We need to support calls in the non-oilpan build
446 // because a fully transitioned type (which will have its trace method 446 // because a fully transitioned type (which will have its trace method
447 // called) might trace a field that is in transition. Once transition types 447 // called) might trace a field that is in transition. Once transition types
448 // are removed these can be removed. 448 // are removed these can be removed.
449 template<typename T> void trace(const OwnPtr<T>&) { } 449 template<typename T> void trace(const OwnPtr<T>&) { }
450 template<typename T> void trace(const RefPtr<T>&) { } 450 template<typename T> void trace(const RefPtr<T>&) { }
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 const int kMaxEagerTraceDepth = 100; 663 const int kMaxEagerTraceDepth = 100;
664 664
665 static int m_traceDepth; 665 static int m_traceDepth;
666 bool m_isGlobalMarkingVisitor; 666 bool m_isGlobalMarkingVisitor;
667 }; 667 };
668 668
669 // We trace vectors by using the trace trait on each element, which means you 669 // We trace vectors by using the trace trait on each element, which means you
670 // can have vectors of general objects (not just pointers to objects) that can 670 // can have vectors of general objects (not just pointers to objects) that can
671 // be traced. 671 // be traced.
672 template<typename T, size_t N> 672 template<typename T, size_t N>
673 struct OffHeapCollectionTraceTrait<WTF::Vector<T, N, WTF::DefaultAllocator> > { 673 struct OffHeapCollectionTraceTrait<WTF::Vector<T, N, WTF::DefaultAllocator>> {
674 typedef WTF::Vector<T, N, WTF::DefaultAllocator> Vector; 674 typedef WTF::Vector<T, N, WTF::DefaultAllocator> Vector;
675 675
676 template<typename VisitorDispatcher> 676 template<typename VisitorDispatcher>
677 static void trace(VisitorDispatcher visitor, const Vector& vector) 677 static void trace(VisitorDispatcher visitor, const Vector& vector)
678 { 678 {
679 if (vector.isEmpty()) 679 if (vector.isEmpty())
680 return; 680 return;
681 for (typename Vector::const_iterator it = vector.begin(), end = vector.e nd(); it != end; ++it) 681 for (typename Vector::const_iterator it = vector.begin(), end = vector.e nd(); it != end; ++it)
682 TraceTrait<T>::trace(visitor, const_cast<T*>(it)); 682 TraceTrait<T>::trace(visitor, const_cast<T*>(it));
683 } 683 }
684 }; 684 };
685 685
686 template<typename T, size_t N> 686 template<typename T, size_t N>
687 struct OffHeapCollectionTraceTrait<WTF::Deque<T, N> > { 687 struct OffHeapCollectionTraceTrait<WTF::Deque<T, N>> {
688 typedef WTF::Deque<T, N> Deque; 688 typedef WTF::Deque<T, N> Deque;
689 689
690 template<typename VisitorDispatcher> 690 template<typename VisitorDispatcher>
691 static void trace(VisitorDispatcher visitor, const Deque& deque) 691 static void trace(VisitorDispatcher visitor, const Deque& deque)
692 { 692 {
693 if (deque.isEmpty()) 693 if (deque.isEmpty())
694 return; 694 return;
695 for (typename Deque::const_iterator it = deque.begin(), end = deque.end( ); it != end; ++it) 695 for (typename Deque::const_iterator it = deque.begin(), end = deque.end( ); it != end; ++it)
696 TraceTrait<T>::trace(visitor, const_cast<T*>(&(*it))); 696 TraceTrait<T>::trace(visitor, const_cast<T*>(&(*it)));
697 } 697 }
698 }; 698 };
699 699
700 template<typename T, typename Traits = WTF::VectorTraits<T> > 700 template<typename T, typename Traits = WTF::VectorTraits<T>>
701 class HeapVectorBacking; 701 class HeapVectorBacking;
702 702
703 template<typename Table> 703 template<typename Table>
704 class HeapHashTableBacking { 704 class HeapHashTableBacking {
705 public: 705 public:
706 static void finalize(void* pointer); 706 static void finalize(void* pointer);
707 }; 707 };
708 708
709 template<typename T> 709 template<typename T>
710 class DefaultTraceTrait<T, false> { 710 class DefaultTraceTrait<T, false> {
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 struct GCInfoTrait { 926 struct GCInfoTrait {
927 static size_t index() 927 static size_t index()
928 { 928 {
929 return GCInfoAtBase<typename GetGarbageCollectedBase<T>::type>::index(); 929 return GCInfoAtBase<typename GetGarbageCollectedBase<T>::type>::index();
930 } 930 }
931 }; 931 };
932 932
933 } 933 }
934 934
935 #endif 935 #endif
OLDNEW
« no previous file with comments | « Source/platform/heap/HeapTest.cpp ('k') | Source/platform/image-decoders/gif/GIFImageReader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698