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