Index: tools/clang/blink_gc_plugin/Edge.cpp |
diff --git a/tools/clang/blink_gc_plugin/Edge.cpp b/tools/clang/blink_gc_plugin/Edge.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c56a576414896e0bf9998fe1358341484c278d31 |
--- /dev/null |
+++ b/tools/clang/blink_gc_plugin/Edge.cpp |
@@ -0,0 +1,75 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "Config.h" |
+#include "Edge.h" |
+#include "RecordInfo.h" |
+ |
+TracingStatus Value::NeedsTracing(NeedsTracingOption option) { |
+ return value_->NeedsTracing(option); |
+} |
+ |
+bool Value::NeedsFinalization() { return value_->NeedsFinalization(); } |
+bool Collection::NeedsFinalization() { return info_->NeedsFinalization(); } |
+ |
+void RecursiveEdgeVisitor::AtValue(Value*) {} |
+void RecursiveEdgeVisitor::AtRawPtr(RawPtr*) {} |
+void RecursiveEdgeVisitor::AtRefPtr(RefPtr*) {} |
+void RecursiveEdgeVisitor::AtOwnPtr(OwnPtr*) {} |
+void RecursiveEdgeVisitor::AtMember(Member*) {} |
+void RecursiveEdgeVisitor::AtWeakMember(WeakMember*) {} |
+void RecursiveEdgeVisitor::AtPersistent(Persistent*) {} |
+void RecursiveEdgeVisitor::AtCollection(Collection*) {} |
+ |
+void RecursiveEdgeVisitor::VisitValue(Value* e) { |
+ AtValue(e); |
+} |
+ |
+void RecursiveEdgeVisitor::VisitRawPtr(RawPtr* e) { |
+ AtRawPtr(e); |
+ Enter(e); |
+ e->ptr()->Accept(this); |
+ Leave(); |
+} |
+ |
+void RecursiveEdgeVisitor::VisitRefPtr(RefPtr* e) { |
+ AtRefPtr(e); |
+ Enter(e); |
+ e->ptr()->Accept(this); |
+ Leave(); |
+} |
+void RecursiveEdgeVisitor::VisitOwnPtr(OwnPtr* e) { |
+ AtOwnPtr(e); |
+ Enter(e); |
+ e->ptr()->Accept(this); |
+ Leave(); |
+} |
+ |
+void RecursiveEdgeVisitor::VisitMember(Member* e) { |
+ AtMember(e); |
+ Enter(e); |
+ e->ptr()->Accept(this); |
+ Leave(); |
+} |
+ |
+void RecursiveEdgeVisitor::VisitWeakMember(WeakMember* e) { |
+ AtWeakMember(e); |
+ Enter(e); |
+ e->ptr()->Accept(this); |
+ Leave(); |
+} |
+ |
+void RecursiveEdgeVisitor::VisitPersistent(Persistent* e) { |
+ AtPersistent(e); |
+ Enter(e); |
+ e->ptr()->Accept(this); |
+ Leave(); |
+} |
+ |
+void RecursiveEdgeVisitor::VisitCollection(Collection* e) { |
+ AtCollection(e); |
+ Enter(e); |
+ e->AcceptMembers(this); |
+ Leave(); |
+} |