diff options
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/ReaderELF.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/ELF/ReaderELF.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/lld/lib/ReaderWriter/ELF/ReaderELF.cpp b/lld/lib/ReaderWriter/ELF/ReaderELF.cpp index 16e53f221c6..deaf66354c4 100644 --- a/lld/lib/ReaderWriter/ELF/ReaderELF.cpp +++ b/lld/lib/ReaderWriter/ELF/ReaderELF.cpp @@ -13,10 +13,12 @@ /// //===----------------------------------------------------------------------===// -#include "lld/ReaderWriter/ReaderELF.h" -#include "lld/ReaderWriter/ReaderArchive.h" +#include "lld/ReaderWriter/Reader.h" + #include "lld/Core/File.h" #include "lld/Core/Reference.h" +#include "lld/ReaderWriter/ELFTargetInfo.h" +#include "lld/ReaderWriter/ReaderArchive.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SmallString.h" @@ -326,12 +328,9 @@ private: /// memory buffer for ELF class and bit width class ReaderELF : public Reader { public: - ReaderELF(const ReaderOptionsELF &, - ReaderOptionsArchive &readerOptionsArchive) - : _readerOptionsArchive(readerOptionsArchive), - _readerArchive(_readerOptionsArchive) { - _readerOptionsArchive.setReader(this); - } + ReaderELF(const TargetInfo & ti, std::function<ReaderFunc> read) + : Reader(ti), + _readerArchive(ti, read) {} error_code parseFile(std::unique_ptr<MemoryBuffer> mb, std::vector<std::unique_ptr<File>> &result) { @@ -411,18 +410,13 @@ public: } private: - ReaderOptionsArchive &_readerOptionsArchive; ReaderArchive _readerArchive; }; } // end anon namespace. namespace lld { -ReaderOptionsELF::ReaderOptionsELF() {} - -ReaderOptionsELF::~ReaderOptionsELF() {} - -Reader *createReaderELF(const ReaderOptionsELF &options, - ReaderOptionsArchive &optionsArchive) { - return new ReaderELF(options, optionsArchive); +std::unique_ptr<Reader> createReaderELF(const TargetInfo & ti, + std::function<ReaderFunc> read) { + return std::unique_ptr<Reader>(new ReaderELF(ti, std::move(read))); } } // end namespace lld |