From: Benjamin Kramer Date: Tue, 6 Oct 2015 10:23:34 +0000 (+0000) Subject: [VFS] Port SimpleFormatContext to InMemoryFileSystem. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fad8a5cf2c6fe44b4f115952040f9dfdd23016da;p=clang [VFS] Port SimpleFormatContext to InMemoryFileSystem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@249389 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Index/SimpleFormatContext.h b/lib/Index/SimpleFormatContext.h index b884214989..2c26e4d82e 100644 --- a/lib/Index/SimpleFormatContext.h +++ b/lib/Index/SimpleFormatContext.h @@ -38,18 +38,17 @@ public: : DiagOpts(new DiagnosticOptions()), Diagnostics(new DiagnosticsEngine(new DiagnosticIDs, DiagOpts.get())), - Files((FileSystemOptions())), + InMemoryFileSystem(new vfs::InMemoryFileSystem), + Files(FileSystemOptions(), InMemoryFileSystem), Sources(*Diagnostics, Files), Rewrite(Sources, Options) { Diagnostics->setClient(new IgnoringDiagConsumer, true); } FileID createInMemoryFile(StringRef Name, StringRef Content) { - std::unique_ptr Source = - llvm::MemoryBuffer::getMemBuffer(Content); - const FileEntry *Entry = - Files.getVirtualFile(Name, Source->getBufferSize(), 0); - Sources.overrideFileContents(Entry, std::move(Source)); + InMemoryFileSystem->addFile(Name, 0, + llvm::MemoryBuffer::getMemBuffer(Content)); + const FileEntry *Entry = Files.getFile(Name); assert(Entry != nullptr); return Sources.createFileID(Entry, SourceLocation(), SrcMgr::C_User); } @@ -64,6 +63,7 @@ public: IntrusiveRefCntPtr DiagOpts; IntrusiveRefCntPtr Diagnostics; + IntrusiveRefCntPtr InMemoryFileSystem; FileManager Files; SourceManager Sources; Rewriter Rewrite;