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 NeedsTracing(NeedsTracingOption option)9TracingStatus Value::NeedsTracing(NeedsTracingOption option) { 10 return value_->NeedsTracing(option); 11 } 12 NeedsFinalization()13bool Value::NeedsFinalization() { return value_->NeedsFinalization(); } NeedsFinalization()14bool Collection::NeedsFinalization() { return info_->NeedsFinalization(); } 15 AtValue(Value *)16void RecursiveEdgeVisitor::AtValue(Value*) {} AtRawPtr(RawPtr *)17void RecursiveEdgeVisitor::AtRawPtr(RawPtr*) {} AtRefPtr(RefPtr *)18void RecursiveEdgeVisitor::AtRefPtr(RefPtr*) {} AtOwnPtr(OwnPtr *)19void RecursiveEdgeVisitor::AtOwnPtr(OwnPtr*) {} AtUniquePtr(UniquePtr *)20void RecursiveEdgeVisitor::AtUniquePtr(UniquePtr*) {} AtMember(Member *)21void RecursiveEdgeVisitor::AtMember(Member*) {} AtWeakMember(WeakMember *)22void RecursiveEdgeVisitor::AtWeakMember(WeakMember*) {} AtPersistent(Persistent *)23void RecursiveEdgeVisitor::AtPersistent(Persistent*) {} AtCrossThreadPersistent(CrossThreadPersistent *)24void RecursiveEdgeVisitor::AtCrossThreadPersistent(CrossThreadPersistent*) {} AtCollection(Collection *)25void RecursiveEdgeVisitor::AtCollection(Collection*) {} 26 VisitValue(Value * e)27void RecursiveEdgeVisitor::VisitValue(Value* e) { 28 AtValue(e); 29 } 30 VisitRawPtr(RawPtr * e)31void RecursiveEdgeVisitor::VisitRawPtr(RawPtr* e) { 32 AtRawPtr(e); 33 Enter(e); 34 e->ptr()->Accept(this); 35 Leave(); 36 } 37 VisitRefPtr(RefPtr * e)38void RecursiveEdgeVisitor::VisitRefPtr(RefPtr* e) { 39 AtRefPtr(e); 40 Enter(e); 41 e->ptr()->Accept(this); 42 Leave(); 43 } VisitOwnPtr(OwnPtr * e)44void RecursiveEdgeVisitor::VisitOwnPtr(OwnPtr* e) { 45 AtOwnPtr(e); 46 Enter(e); 47 e->ptr()->Accept(this); 48 Leave(); 49 } 50 VisitUniquePtr(UniquePtr * e)51void RecursiveEdgeVisitor::VisitUniquePtr(UniquePtr* e) { 52 AtUniquePtr(e); 53 Enter(e); 54 e->ptr()->Accept(this); 55 Leave(); 56 } 57 VisitMember(Member * e)58void RecursiveEdgeVisitor::VisitMember(Member* e) { 59 AtMember(e); 60 Enter(e); 61 e->ptr()->Accept(this); 62 Leave(); 63 } 64 VisitWeakMember(WeakMember * e)65void RecursiveEdgeVisitor::VisitWeakMember(WeakMember* e) { 66 AtWeakMember(e); 67 Enter(e); 68 e->ptr()->Accept(this); 69 Leave(); 70 } 71 VisitPersistent(Persistent * e)72void RecursiveEdgeVisitor::VisitPersistent(Persistent* e) { 73 AtPersistent(e); 74 Enter(e); 75 e->ptr()->Accept(this); 76 Leave(); 77 } 78 VisitCrossThreadPersistent(CrossThreadPersistent * e)79void RecursiveEdgeVisitor::VisitCrossThreadPersistent( 80 CrossThreadPersistent* e) { 81 AtCrossThreadPersistent(e); 82 Enter(e); 83 e->ptr()->Accept(this); 84 Leave(); 85 } 86 VisitCollection(Collection * e)87void RecursiveEdgeVisitor::VisitCollection(Collection* e) { 88 AtCollection(e); 89 Enter(e); 90 e->AcceptMembers(this); 91 Leave(); 92 } 93