r249389 - [VFS] Port SimpleFormatContext to InMemoryFileSystem.

Benjamin Kramer via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 6 03:23:48 PDT 2015


Author: d0k
Date: Tue Oct  6 05:23:34 2015
New Revision: 249389

URL: http://llvm.org/viewvc/llvm-project?rev=249389&view=rev
Log:
[VFS] Port SimpleFormatContext to InMemoryFileSystem.

Modified:
    cfe/trunk/lib/Index/SimpleFormatContext.h

Modified: cfe/trunk/lib/Index/SimpleFormatContext.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Index/SimpleFormatContext.h?rev=249389&r1=249388&r2=249389&view=diff
==============================================================================
--- cfe/trunk/lib/Index/SimpleFormatContext.h (original)
+++ cfe/trunk/lib/Index/SimpleFormatContext.h Tue Oct  6 05:23:34 2015
@@ -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<llvm::MemoryBuffer> 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<DiagnosticOptions> DiagOpts;
   IntrusiveRefCntPtr<DiagnosticsEngine> Diagnostics;
+  IntrusiveRefCntPtr<vfs::InMemoryFileSystem> InMemoryFileSystem;
   FileManager Files;
   SourceManager Sources;
   Rewriter Rewrite;




More information about the cfe-commits mailing list