From: Benjamin Kramer Date: Mon, 5 Oct 2015 13:55:09 +0000 (+0000) Subject: [VFS] Move class out of method so it looks less like Java. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4643e5c953585986d0149e8d530648e391ca7c4e;p=clang [VFS] Move class out of method so it looks less like Java. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@249314 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/VirtualFileSystem.cpp b/lib/Basic/VirtualFileSystem.cpp index 804fe1dae4..32e485f6c2 100644 --- a/lib/Basic/VirtualFileSystem.cpp +++ b/lib/Basic/VirtualFileSystem.cpp @@ -942,6 +942,33 @@ ErrorOr VFSFromYAML::status(const Twine &Path) { return status(Path, *Result); } +namespace { +/// Provide a file wrapper that returns the external name when asked. +class NamedFileAdaptor : public File { + std::unique_ptr InnerFile; + std::string NewName; + +public: + NamedFileAdaptor(std::unique_ptr InnerFile, std::string NewName) + : InnerFile(std::move(InnerFile)), NewName(std::move(NewName)) {} + + llvm::ErrorOr status() override { + auto InnerStatus = InnerFile->status(); + if (InnerStatus) + return Status::copyWithNewName(*InnerStatus, NewName); + return InnerStatus.getError(); + } + llvm::ErrorOr> + 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> VFSFromYAML::openFileForRead(const Twine &Path) { ErrorOr E = lookupPath(Path); if (!E) @@ -955,34 +982,9 @@ ErrorOr> VFSFromYAML::openFileForRead(const Twine &Path) { 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 InnerFile; - std::string NewName; - - public: - NamedFileAdaptor(std::unique_ptr InnerFile, std::string NewName) - : InnerFile(std::move(InnerFile)), NewName(std::move(NewName)) {} - - llvm::ErrorOr status() override { - auto InnerStatus = InnerFile->status(); - if (InnerStatus) - return Status::copyWithNewName(*InnerStatus, NewName); - return InnerStatus.getError(); - } - llvm::ErrorOr> - 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( new NamedFileAdaptor(std::move(*Result), Path.str())); - } return Result; }