summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/FileArchive.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-04-24 15:51:45 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-04-24 15:51:45 +0000
commitc08ab8e6e4559b6ba5bc16f70c75da86bd278a4f (patch)
tree3c1f6055eb6cdfe718ae69a25ccf9371227ac302 /lld/lib/ReaderWriter/FileArchive.cpp
parentaf9fdb9dcfec7fd26dd8085a6311035cd7e863ae (diff)
downloadbcm5719-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.cpp17
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 &reg,
- std::vector<std::unique_ptr<File>> &result) const override {
+ std::error_code loadFile(std::unique_ptr<MemoryBuffer> mb,
+ const Registry &reg,
+ 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();
}
OpenPOWER on IntegriCloud