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