r249314 - [VFS] Move class out of method so it looks less like Java.

Benjamin Kramer via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 5 06:55:10 PDT 2015


Author: d0k
Date: Mon Oct  5 08:55:09 2015
New Revision: 249314

URL: http://llvm.org/viewvc/llvm-project?rev=249314&view=rev
Log:
[VFS] Move class out of method so it looks less like Java.

No functionality change.

Modified:
    cfe/trunk/lib/Basic/VirtualFileSystem.cpp

Modified: cfe/trunk/lib/Basic/VirtualFileSystem.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/VirtualFileSystem.cpp?rev=249314&r1=249313&r2=249314&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/VirtualFileSystem.cpp (original)
+++ cfe/trunk/lib/Basic/VirtualFileSystem.cpp Mon Oct  5 08:55:09 2015
@@ -942,6 +942,33 @@ ErrorOr<Status> VFSFromYAML::status(cons
   return status(Path, *Result);
 }
 
+namespace {
+/// Provide a file wrapper that returns the external name when asked.
+class NamedFileAdaptor : public File {
+  std::unique_ptr<File> InnerFile;
+  std::string NewName;
+
+public:
+  NamedFileAdaptor(std::unique_ptr<File> InnerFile, std::string NewName)
+      : InnerFile(std::move(InnerFile)), NewName(std::move(NewName)) {}
+
+  llvm::ErrorOr<Status> status() override {
+    auto InnerStatus = InnerFile->status();
+    if (InnerStatus)
+      return Status::copyWithNewName(*InnerStatus, NewName);
+    return InnerStatus.getError();
+  }
+  llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
+  getBuffer(const Twine &Name, int64_t FileSize = -1,
+            bool RequiresNullTerminator = true,
+            bool IsVolatile = false) override {
+    return InnerFile->getBuffer(Name, FileSize, RequiresNullTerminator,
+                                IsVolatile);
+  }
+  std::error_code close() override { return InnerFile->close(); }
+};
+} // end anonymous namespace
+
 ErrorOr<std::unique_ptr<File>> VFSFromYAML::openFileForRead(const Twine &Path) {
   ErrorOr<Entry *> E = lookupPath(Path);
   if (!E)
@@ -955,34 +982,9 @@ ErrorOr<std::unique_ptr<File>> VFSFromYA
   if (!Result)
     return Result;
 
-  if (!F->useExternalName(UseExternalNames)) {
-    // Provide a file wrapper that returns the external name when asked.
-    class NamedFileAdaptor : public File {
-      std::unique_ptr<File> InnerFile;
-      std::string NewName;
-
-    public:
-      NamedFileAdaptor(std::unique_ptr<File> InnerFile, std::string NewName)
-          : InnerFile(std::move(InnerFile)), NewName(std::move(NewName)) {}
-
-      llvm::ErrorOr<Status> status() override {
-        auto InnerStatus = InnerFile->status();
-        if (InnerStatus)
-          return Status::copyWithNewName(*InnerStatus, NewName);
-        return InnerStatus.getError();
-      }
-      llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
-      getBuffer(const Twine &Name, int64_t FileSize = -1,
-                bool RequiresNullTerminator = true,
-                bool IsVolatile = false) override {
-        return InnerFile->getBuffer(Name, FileSize, RequiresNullTerminator,
-                                    IsVolatile);
-      }
-      std::error_code close() override { return InnerFile->close(); }
-    };
+  if (!F->useExternalName(UseExternalNames))
     return std::unique_ptr<File>(
         new NamedFileAdaptor(std::move(*Result), Path.str()));
-  }
 
   return Result;
 }




More information about the cfe-commits mailing list