diff options
| author | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-04-05 22:04:44 +0000 |
|---|---|---|
| committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2013-04-05 22:04:44 +0000 |
| commit | e6d5609de458022aaf96950b78794d104f80df7c (patch) | |
| tree | 92de7e135dec230a1c5516125307d4c159a6fd68 /lld/lib/ReaderWriter/ELF/Reader.cpp | |
| parent | eb108bad50bb5198867544b773bd55c44cb3d2fe (diff) | |
| download | bcm5719-llvm-e6d5609de458022aaf96950b78794d104f80df7c.tar.gz bcm5719-llvm-e6d5609de458022aaf96950b78794d104f80df7c.zip | |
Revert "Correctly pass ownership of MemoryBuffers."
llvm-svn: 178918
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/Reader.cpp')
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/Reader.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Reader.cpp b/lld/lib/ReaderWriter/ELF/Reader.cpp index 28517611bb4..cb6e9cde00f 100644 --- a/lld/lib/ReaderWriter/ELF/Reader.cpp +++ b/lld/lib/ReaderWriter/ELF/Reader.cpp @@ -82,8 +82,8 @@ public: : lld::Reader(ti), _elfTargetInfo(ti), _readerArchive(ti, *this) { } - error_code parseFile(std::unique_ptr<MemoryBuffer> mb, - std::vector<std::unique_ptr<File>> &result) const { + error_code parseFile(std::unique_ptr<MemoryBuffer> &mb, + std::vector<std::unique_ptr<File> > &result) const { using llvm::object::ELFType; llvm::sys::LLVMFileType fileType = llvm::sys::IdentifyFileType(mb->getBufferStart(), @@ -96,7 +96,7 @@ public: switch (fileType) { case llvm::sys::ELF_Relocatable_FileType: { std::unique_ptr<File> f(createELF<ELFFileCreateELFTraits>( - getElfArchType(mb.get()), MaxAlignment, _elfTargetInfo, std::move(mb), + getElfArchType(&*mb), MaxAlignment, _elfTargetInfo, std::move(mb), ec)); if (ec) return ec; @@ -105,15 +105,14 @@ public: } case llvm::sys::ELF_SharedObject_FileType: { auto f = createELF<DynamicFileCreateELFTraits>( - getElfArchType(mb.get()), MaxAlignment, _elfTargetInfo, - std::move(mb)); + getElfArchType(&*mb), MaxAlignment, _elfTargetInfo, std::move(mb)); if (!f) return f; result.push_back(std::move(*f)); break; } case llvm::sys::Archive_FileType: - ec = _readerArchive.parseFile(std::move(mb), result); + ec = _readerArchive.parseFile(mb, result); break; default: return llvm::make_error_code(llvm::errc::executable_format_error); |

