1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "Config.h" 6 #include "Edge.h" 7 #include "RecordInfo.h" 8 9 TracingStatus Value::NeedsTracing(NeedsTracingOption option) { 10 return value_->NeedsTracing(option); 11 } 12 13 bool Value::NeedsFinalization() { return value_->NeedsFinalization(); } 14 bool Collection::NeedsFinalization() { return info_->NeedsFinalization(); } 15 16 void RecursiveEdgeVisitor::AtValue(Value*) {} 17 void RecursiveEdgeVisitor::AtRawPtr(RawPtr*) {} 18 void RecursiveEdgeVisitor::AtRefPtr(RefPtr*) {} 19 void RecursiveEdgeVisitor::AtUniquePtr(UniquePtr*) {} 20 void RecursiveEdgeVisitor::AtMember(Member*) {} 21 void RecursiveEdgeVisitor::AtWeakMember(WeakMember*) {} 22 void RecursiveEdgeVisitor::AtPersistent(Persistent*) {} 23 void RecursiveEdgeVisitor::AtCrossThreadPersistent(CrossThreadPersistent*) {} 24 void RecursiveEdgeVisitor::AtCollection(Collection*) {} 25 void RecursiveEdgeVisitor::AtIterator(Iterator*) {} 26 27 void RecursiveEdgeVisitor::VisitValue(Value* e) { 28 AtValue(e); 29 } 30 31 void RecursiveEdgeVisitor::VisitRawPtr(RawPtr* e) { 32 AtRawPtr(e); 33 Enter(e); 34 e->ptr()->Accept(this); 35 Leave(); 36 } 37 38 void RecursiveEdgeVisitor::VisitRefPtr(RefPtr* e) { 39 AtRefPtr(e); 40 Enter(e); 41 e->ptr()->Accept(this); 42 Leave(); 43 } 44 45 void RecursiveEdgeVisitor::VisitUniquePtr(UniquePtr* e) { 46 AtUniquePtr(e); 47 Enter(e); 48 e->ptr()->Accept(this); 49 Leave(); 50 } 51 52 void RecursiveEdgeVisitor::VisitMember(Member* e) { 53 AtMember(e); 54 Enter(e); 55 e->ptr()->Accept(this); 56 Leave(); 57 } 58 59 void RecursiveEdgeVisitor::VisitWeakMember(WeakMember* e) { 60 AtWeakMember(e); 61 Enter(e); 62 e->ptr()->Accept(this); 63 Leave(); 64 } 65 66 void RecursiveEdgeVisitor::VisitPersistent(Persistent* e) { 67 AtPersistent(e); 68 Enter(e); 69 e->ptr()->Accept(this); 70 Leave(); 71 } 72 73 void RecursiveEdgeVisitor::VisitCrossThreadPersistent( 74 CrossThreadPersistent* e) { 75 AtCrossThreadPersistent(e); 76 Enter(e); 77 e->ptr()->Accept(this); 78 Leave(); 79 } 80 81 void RecursiveEdgeVisitor::VisitCollection(Collection* e) { 82 AtCollection(e); 83 Enter(e); 84 e->AcceptMembers(this); 85 Leave(); 86 } 87 88 void RecursiveEdgeVisitor::VisitIterator(Iterator* e) { 89 AtIterator(e); 90 } 91