Index: tools/clang/blink_gc_plugin/CollectVisitor.cpp |
diff --git a/tools/clang/blink_gc_plugin/CollectVisitor.cpp b/tools/clang/blink_gc_plugin/CollectVisitor.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..203e8adf24427a5fcb196f893feb1737d6caf41a |
--- /dev/null |
+++ b/tools/clang/blink_gc_plugin/CollectVisitor.cpp |
@@ -0,0 +1,32 @@ |
+// Copyright 2015 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 "CollectVisitor.h" |
+ |
+#include "Config.h" |
+ |
+using namespace clang; |
+ |
+CollectVisitor::CollectVisitor() { |
+} |
+ |
+CollectVisitor::RecordVector& CollectVisitor::record_decls() { |
+ return record_decls_; |
+} |
+ |
+CollectVisitor::MethodVector& CollectVisitor::trace_decls() { |
+ return trace_decls_; |
+} |
+ |
+bool CollectVisitor::VisitCXXRecordDecl(CXXRecordDecl* record) { |
+ if (record->hasDefinition() && record->isCompleteDefinition()) |
+ record_decls_.push_back(record); |
+ return true; |
+} |
+ |
+bool CollectVisitor::VisitCXXMethodDecl(CXXMethodDecl* method) { |
+ if (method->isThisDeclarationADefinition() && Config::IsTraceMethod(method)) |
+ trace_decls_.push_back(method); |
+ return true; |
+} |