[lld] r235741 - Return an ErrorOr<std::unique_ptr<File>>. NFC.

Rafael Espindola rafael.espindola at gmail.com
Fri Apr 24 11:33:51 PDT 2015


Author: rafael
Date: Fri Apr 24 13:33:50 2015
New Revision: 235741

URL: http://llvm.org/viewvc/llvm-project?rev=235741&view=rev
Log:
Return an ErrorOr<std::unique_ptr<File>>. NFC.

Modified:
    lld/trunk/include/lld/Core/Reader.h
    lld/trunk/lib/Core/Reader.cpp
    lld/trunk/lib/ReaderWriter/ELF/ELFReader.h
    lld/trunk/lib/ReaderWriter/FileArchive.cpp
    lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
    lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
    lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp
    lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp

Modified: lld/trunk/include/lld/Core/Reader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Reader.h?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/Reader.h (original)
+++ lld/trunk/include/lld/Core/Reader.h Fri Apr 24 13:33:50 2015
@@ -51,9 +51,8 @@ public:
   /// \brief Parse a supplied buffer (already filled with the contents of a
   /// file) and create a File object.
   /// The resulting File object takes ownership of the MemoryBuffer.
-  virtual std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
-                                   const class Registry &,
-                                   std::unique_ptr<File> &result) const = 0;
+  virtual ErrorOr<std::unique_ptr<File>>
+  loadFile(std::unique_ptr<MemoryBuffer> mb, const class Registry &) const = 0;
 };
 
 

Modified: lld/trunk/lib/Core/Reader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Reader.cpp?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/lib/Core/Reader.cpp (original)
+++ lld/trunk/lib/Core/Reader.cpp Fri Apr 24 13:33:50 2015
@@ -38,8 +38,11 @@ std::error_code Registry::loadFile(std::
   for (const std::unique_ptr<Reader> &reader : _readers) {
     if (!reader->canParse(fileType, *mb))
       continue;
-    if (std::error_code ec = reader->loadFile(std::move(mb), *this, result))
+    ErrorOr<std::unique_ptr<File>> fileOrErr =
+        reader->loadFile(std::move(mb), *this);
+    if (std::error_code ec = fileOrErr.getError())
       return ec;
+    result = std::move(fileOrErr.get());
     return std::error_code();
   }
 

Modified: lld/trunk/lib/ReaderWriter/ELF/ELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFReader.h?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ELFReader.h Fri Apr 24 13:33:50 2015
@@ -28,13 +28,13 @@ public:
     return FileT::canParse(magic);
   }
 
-  std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
-                           const class Registry &,
-                           std::unique_ptr<File> &result) const override {
+  ErrorOr<std::unique_ptr<File>>
+  loadFile(std::unique_ptr<MemoryBuffer> mb,
+           const class Registry &) const override {
     if (std::error_code ec = FileT::isCompatible(*mb, _ctx))
       return ec;
-    result = llvm::make_unique<FileT>(std::move(mb), _ctx);
-    return std::error_code();
+    std::unique_ptr<File> ret = llvm::make_unique<FileT>(std::move(mb), _ctx);
+    return std::move(ret);
   }
 
 private:

Modified: lld/trunk/lib/ReaderWriter/FileArchive.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/FileArchive.cpp?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/FileArchive.cpp (original)
+++ lld/trunk/lib/ReaderWriter/FileArchive.cpp Fri Apr 24 13:33:50 2015
@@ -267,13 +267,12 @@ public:
     return magic == llvm::sys::fs::file_magic::archive;
   }
 
-  std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
-                           const Registry &reg,
-                           std::unique_ptr<File> &result) const override {
+  ErrorOr<std::unique_ptr<File>> loadFile(std::unique_ptr<MemoryBuffer> mb,
+                                          const Registry &reg) const override {
     StringRef path = mb->getBufferIdentifier();
-    result =
+    std::unique_ptr<File> ret =
         llvm::make_unique<FileArchive>(std::move(mb), reg, path, _logLoading);
-    return std::error_code();
+    return std::move(ret);
   }
 
 private:

Modified: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp Fri Apr 24 13:33:50 2015
@@ -522,11 +522,12 @@ public:
             mb.getBufferSize() > 32);
   }
 
-  std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
-                           const Registry &registry,
-                           std::unique_ptr<File> &result) const override {
-    result = llvm::make_unique<MachOFile>(std::move(mb), &_ctx);
-    return std::error_code();
+  ErrorOr<std::unique_ptr<File>>
+  loadFile(std::unique_ptr<MemoryBuffer> mb,
+           const Registry &registry) const override {
+    std::unique_ptr<File> ret =
+        llvm::make_unique<MachOFile>(std::move(mb), &_ctx);
+    return std::move(ret);
   }
 
 private:
@@ -547,11 +548,12 @@ public:
     }
   }
 
-  std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
-                           const Registry &registry,
-                           std::unique_ptr<File> &result) const override {
-    result = llvm::make_unique<MachODylibFile>(std::move(mb), &_ctx);
-    return std::error_code();
+  ErrorOr<std::unique_ptr<File>>
+  loadFile(std::unique_ptr<MemoryBuffer> mb,
+           const Registry &registry) const override {
+    std::unique_ptr<File> ret =
+        llvm::make_unique<MachODylibFile>(std::move(mb), &_ctx);
+    return std::move(ret);
   }
 
 private:

Modified: lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp Fri Apr 24 13:33:50 2015
@@ -1052,11 +1052,12 @@ public:
     return magic == llvm::sys::fs::file_magic::coff_object;
   }
 
-  std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb, const Registry &,
-                           std::unique_ptr<File> &result) const override {
+  ErrorOr<std::unique_ptr<File>> loadFile(std::unique_ptr<MemoryBuffer> mb,
+                                          const Registry &) const override {
     // Parse the memory buffer as PECOFF file.
-    result = llvm::make_unique<FileCOFF>(std::move(mb), _ctx);
-    return std::error_code();
+    std::unique_ptr<File> ret =
+        llvm::make_unique<FileCOFF>(std::move(mb), _ctx);
+    return std::move(ret);
   }
 
 private:

Modified: lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp Fri Apr 24 13:33:50 2015
@@ -367,12 +367,12 @@ public:
     return magic == llvm::sys::fs::file_magic::coff_import_library;
   }
 
-  std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
-                           const class Registry &,
-                           std::unique_ptr<File> &result) const override {
-    result = llvm::make_unique<FileImportLibrary>(std::move(mb),
-                                                  _ctx.getMachineType());
-    return std::error_code();
+  ErrorOr<std::unique_ptr<File>>
+  loadFile(std::unique_ptr<MemoryBuffer> mb,
+           const class Registry &) const override {
+    std::unique_ptr<File> ret = llvm::make_unique<FileImportLibrary>(
+        std::move(mb), _ctx.getMachineType());
+    return std::move(ret);
   }
 
 private:

Modified: lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp?rev=235741&r1=235740&r2=235741&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp (original)
+++ lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp Fri Apr 24 13:33:50 2015
@@ -1294,9 +1294,9 @@ public:
     return ext.equals(".objtxt") || ext.equals(".yaml");
   }
 
-  std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
-                           const class Registry &,
-                           std::unique_ptr<File> &result) const override {
+  ErrorOr<std::unique_ptr<File>>
+  loadFile(std::unique_ptr<MemoryBuffer> mb,
+           const class Registry &) const override {
     // Create YAML Input Reader.
     YamlContext yamlContext;
     yamlContext._registry = &_registry;
@@ -1318,8 +1318,7 @@ public:
     File *f = const_cast<File *>(file);
     f->setLastError(std::error_code());
     f->setSharedMemoryBuffer(smb);
-    result = std::unique_ptr<File>(f);
-    return make_error_code(lld::YamlReaderError::success);
+    return std::unique_ptr<File>(f);
   }
 
 private:





More information about the llvm-commits mailing list