diff options
Diffstat (limited to 'lld/lib/ReaderWriter/FileArchive.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/FileArchive.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lld/lib/ReaderWriter/FileArchive.cpp b/lld/lib/ReaderWriter/FileArchive.cpp index 9e3e3175438..23a2cb5f2a7 100644 --- a/lld/lib/ReaderWriter/FileArchive.cpp +++ b/lld/lib/ReaderWriter/FileArchive.cpp @@ -173,9 +173,11 @@ private: std::unique_ptr<MemoryBuffer> memberMB(MemoryBuffer::getMemBuffer( mb.getBuffer(), mb.getBufferIdentifier(), false)); - std::vector<std::unique_ptr<File>> files; - if (std::error_code ec = _registry.loadFile(std::move(memberMB), files)) + std::unique_ptr<File> file; + if (std::error_code ec = _registry.loadFile(std::move(memberMB), file)) return ec; + std::vector<std::unique_ptr<File>> files; + files.push_back(std::move(file)); assert(files.size() == 1); result = std::move(files[0]); if (std::error_code ec = result->parse()) @@ -265,13 +267,12 @@ public: return magic == llvm::sys::fs::file_magic::archive; } - std::error_code - loadFile(std::unique_ptr<MemoryBuffer> mb, const Registry ®, - std::vector<std::unique_ptr<File>> &result) const override { + std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb, + const Registry ®, + std::unique_ptr<File> &result) const override { StringRef path = mb->getBufferIdentifier(); - std::unique_ptr<FileArchive> file( - new FileArchive(std::move(mb), reg, path, _logLoading)); - result.push_back(std::move(file)); + result = + llvm::make_unique<FileArchive>(std::move(mb), reg, path, _logLoading); return std::error_code(); } |