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::AtOwnPtr(OwnPtr*) {} 20 void RecursiveEdgeVisitor::AtMember(Member*) {} 21 void RecursiveEdgeVisitor::AtWeakMember(WeakMember*) {} 22 void RecursiveEdgeVisitor::AtPersistent(Persistent*) {} 23 void RecursiveEdgeVisitor::AtCollection(Collection*) {} 24 25 void RecursiveEdgeVisitor::VisitValue(Value* e) { 26 AtValue(e); 27 } 28 29 void RecursiveEdgeVisitor::VisitRawPtr(RawPtr* e) { 30 AtRawPtr(e); 31 Enter(e); 32 e->ptr()->Accept(this); 33 Leave(); 34 } 35 36 void RecursiveEdgeVisitor::VisitRefPtr(RefPtr* e) { 37 AtRefPtr(e); 38 Enter(e); 39 e->ptr()->Accept(this); 40 Leave(); 41 } 42 void RecursiveEdgeVisitor::VisitOwnPtr(OwnPtr* e) { 43 AtOwnPtr(e); 44 Enter(e); 45 e->ptr()->Accept(this); 46 Leave(); 47 } 48 49 void RecursiveEdgeVisitor::VisitMember(Member* e) { 50 AtMember(e); 51 Enter(e); 52 e->ptr()->Accept(this); 53 Leave(); 54 } 55 56 void RecursiveEdgeVisitor::VisitWeakMember(WeakMember* e) { 57 AtWeakMember(e); 58 Enter(e); 59 e->ptr()->Accept(this); 60 Leave(); 61 } 62 63 void RecursiveEdgeVisitor::VisitPersistent(Persistent* e) { 64 AtPersistent(e); 65 Enter(e); 66 e->ptr()->Accept(this); 67 Leave(); 68 } 69 70 void RecursiveEdgeVisitor::VisitCollection(Collection* e) { 71 AtCollection(e); 72 Enter(e); 73 e->AcceptMembers(this); 74 Leave(); 75 } 76