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