diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-04-24 15:51:45 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-04-24 15:51:45 +0000 |
commit | c08ab8e6e4559b6ba5bc16f70c75da86bd278a4f (patch) | |
tree | 3c1f6055eb6cdfe718ae69a25ccf9371227ac302 /lld/lib/ReaderWriter/FileArchive.cpp | |
parent | af9fdb9dcfec7fd26dd8085a6311035cd7e863ae (diff) | |
download | bcm5719-llvm-c08ab8e6e4559b6ba5bc16f70c75da86bd278a4f.tar.gz bcm5719-llvm-c08ab8e6e4559b6ba5bc16f70c75da86bd278a4f.zip |
Delete unnecessary generality in loadFile.
loadFile could load mulitple files just because yaml has a feature for
putting multiple documents in one file.
Designing a linker around what yaml can do seems like a bad idea to
me. This patch changes it to read a single file.
There are further improvements to be done to the api and they
will follow shortly.
llvm-svn: 235724
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(); } |