diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/Index/IndexingAction.h | 9 | ||||
-rw-r--r-- | clang/lib/Index/IndexingAction.cpp | 30 | ||||
-rw-r--r-- | clang/tools/c-index-test/core_main.cpp | 4 | ||||
-rw-r--r-- | clang/tools/libclang/Indexing.cpp | 18 |
4 files changed, 28 insertions, 33 deletions
diff --git a/clang/include/clang/Index/IndexingAction.h b/clang/include/clang/Index/IndexingAction.h index fb703be4e5f..98e24554170 100644 --- a/clang/include/clang/Index/IndexingAction.h +++ b/clang/include/clang/Index/IndexingAction.h @@ -46,17 +46,14 @@ createIndexingAction(std::shared_ptr<IndexDataConsumer> DataConsumer, IndexingOptions Opts, std::unique_ptr<FrontendAction> WrappedAction); -void indexASTUnit(ASTUnit &Unit, - std::shared_ptr<IndexDataConsumer> DataConsumer, +void indexASTUnit(ASTUnit &Unit, IndexDataConsumer &DataConsumer, IndexingOptions Opts); void indexTopLevelDecls(ASTContext &Ctx, ArrayRef<const Decl *> Decls, - std::shared_ptr<IndexDataConsumer> DataConsumer, - IndexingOptions Opts); + IndexDataConsumer &DataConsumer, IndexingOptions Opts); void indexModuleFile(serialization::ModuleFile &Mod, ASTReader &Reader, - std::shared_ptr<IndexDataConsumer> DataConsumer, - IndexingOptions Opts); + IndexDataConsumer &DataConsumer, IndexingOptions Opts); } // namespace index } // namespace clang diff --git a/clang/lib/Index/IndexingAction.cpp b/clang/lib/Index/IndexingAction.cpp index fc718b0c0d9..c8f65804b0d 100644 --- a/clang/lib/Index/IndexingAction.cpp +++ b/clang/lib/Index/IndexingAction.cpp @@ -173,40 +173,38 @@ static void indexTranslationUnit(ASTUnit &Unit, IndexingContext &IndexCtx) { Unit.visitLocalTopLevelDecls(&IndexCtx, topLevelDeclVisitor); } -void index::indexASTUnit(ASTUnit &Unit, - std::shared_ptr<IndexDataConsumer> DataConsumer, +void index::indexASTUnit(ASTUnit &Unit, IndexDataConsumer &DataConsumer, IndexingOptions Opts) { - IndexingContext IndexCtx(Opts, *DataConsumer); + IndexingContext IndexCtx(Opts, DataConsumer); IndexCtx.setASTContext(Unit.getASTContext()); - DataConsumer->initialize(Unit.getASTContext()); - DataConsumer->setPreprocessor(Unit.getPreprocessorPtr()); + DataConsumer.initialize(Unit.getASTContext()); + DataConsumer.setPreprocessor(Unit.getPreprocessorPtr()); indexTranslationUnit(Unit, IndexCtx); - DataConsumer->finish(); + DataConsumer.finish(); } void index::indexTopLevelDecls(ASTContext &Ctx, ArrayRef<const Decl *> Decls, - std::shared_ptr<IndexDataConsumer> DataConsumer, + IndexDataConsumer &DataConsumer, IndexingOptions Opts) { - IndexingContext IndexCtx(Opts, *DataConsumer); + IndexingContext IndexCtx(Opts, DataConsumer); IndexCtx.setASTContext(Ctx); - DataConsumer->initialize(Ctx); + DataConsumer.initialize(Ctx); for (const Decl *D : Decls) IndexCtx.indexTopLevelDecl(D); - DataConsumer->finish(); + DataConsumer.finish(); } -void index::indexModuleFile(serialization::ModuleFile &Mod, - ASTReader &Reader, - std::shared_ptr<IndexDataConsumer> DataConsumer, +void index::indexModuleFile(serialization::ModuleFile &Mod, ASTReader &Reader, + IndexDataConsumer &DataConsumer, IndexingOptions Opts) { ASTContext &Ctx = Reader.getContext(); - IndexingContext IndexCtx(Opts, *DataConsumer); + IndexingContext IndexCtx(Opts, DataConsumer); IndexCtx.setASTContext(Ctx); - DataConsumer->initialize(Ctx); + DataConsumer.initialize(Ctx); for (const Decl *D : Reader.getModuleFileLevelDecls(Mod)) { IndexCtx.indexTopLevelDecl(D); } - DataConsumer->finish(); + DataConsumer.finish(); } diff --git a/clang/tools/c-index-test/core_main.cpp b/clang/tools/c-index-test/core_main.cpp index 98658baaa1a..6093df5285e 100644 --- a/clang/tools/c-index-test/core_main.cpp +++ b/clang/tools/c-index-test/core_main.cpp @@ -195,7 +195,7 @@ static bool printSourceSymbols(ArrayRef<const char *> Args, if (auto Reader = Unit->getASTReader()) { Reader->getModuleManager().visit([&](serialization::ModuleFile &Mod) -> bool { OS << "==== Module " << Mod.ModuleName << " ====\n"; - indexModuleFile(Mod, *Reader, DataConsumer, IndexOpts); + indexModuleFile(Mod, *Reader, *DataConsumer, IndexOpts); dumpModuleFileInputs(Mod, *Reader, OS); return true; // skip module dependencies. }); @@ -231,7 +231,7 @@ static bool printSourceSymbolsFromModule(StringRef modulePath, return true; } - auto DataConsumer = std::make_shared<PrintIndexDataConsumer>(outs()); + PrintIndexDataConsumer DataConsumer(outs()); IndexingOptions IndexOpts; indexASTUnit(*AU, DataConsumer, IndexOpts); diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp index 021ebcfcfe4..5722e915207 100644 --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -659,8 +659,7 @@ static CXErrorCode clang_indexTranslationUnit_Impl( ? index_callbacks_size : sizeof(CB); memcpy(&CB, client_index_callbacks, ClientCBSize); - auto DataConsumer = std::make_shared<CXIndexDataConsumer>(client_data, CB, - index_options, TU); + CXIndexDataConsumer DataConsumer(client_data, CB, index_options, TU); ASTUnit *Unit = cxtu::getASTUnit(TU); if (!Unit) @@ -669,21 +668,22 @@ static CXErrorCode clang_indexTranslationUnit_Impl( ASTUnit::ConcurrencyCheck Check(*Unit); if (const FileEntry *PCHFile = Unit->getPCHFile()) - DataConsumer->importedPCH(PCHFile); + DataConsumer.importedPCH(PCHFile); FileManager &FileMgr = Unit->getFileManager(); if (Unit->getOriginalSourceFileName().empty()) - DataConsumer->enteredMainFile(nullptr); + DataConsumer.enteredMainFile(nullptr); else - DataConsumer->enteredMainFile(FileMgr.getFile(Unit->getOriginalSourceFileName())); + DataConsumer.enteredMainFile( + FileMgr.getFile(Unit->getOriginalSourceFileName())); - DataConsumer->setASTContext(Unit->getASTContext()); - DataConsumer->startedTranslationUnit(); + DataConsumer.setASTContext(Unit->getASTContext()); + DataConsumer.startedTranslationUnit(); - indexPreprocessingRecord(*Unit, *DataConsumer); + indexPreprocessingRecord(*Unit, DataConsumer); indexASTUnit(*Unit, DataConsumer, getIndexingOptionsFromCXOptions(index_options)); - DataConsumer->indexDiagnostics(); + DataConsumer.indexDiagnostics(); return CXError_Success; } |