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 14:23:21 PDT 2015


On Mon, Oct 5, 2015 at 11:13 PM, Richard Smith <richard at metafoo.co.uk>
wrote:

> On Mon, Oct 5, 2015 at 6:55 AM, Benjamin Kramer via cfe-commits <
> cfe-commits at lists.llvm.org> wrote:
>
>> 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 {
>>
>
> Why are default arguments being specified here? This is only called
> virtually, right?
>

Copy&Paste is convenient ;)

Removed the duplicated defaults in r249355.

- Ben


>
>
>> +    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;
>>  }
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151005/ca90471f/attachment.html>


More information about the cfe-commits mailing list