| // 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_; | 
 | } | 
 |  | 
 | CollectVisitor::MethodVector& CollectVisitor::trace_wrapper_decls() { | 
 |   return trace_wrapper_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()) { | 
 |     if (Config::IsTraceMethod(method)) { | 
 |       trace_decls_.push_back(method); | 
 |     } | 
 |     if (Config::IsTraceWrappersMethod(method)) | 
 |       trace_wrapper_decls_.push_back(method); | 
 |   } | 
 |   return true; | 
 | } |