diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-24 13:56:32 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-24 13:56:32 +0000 |
commit | 2e60ca964ccb6a8531559238b28658e1aa4b0d75 (patch) | |
tree | 5842ce349e814931985e4734f521de90e0b90913 /llvm/lib/Object/COFFObjectFile.cpp | |
parent | e8b1f91afb850bdfcd4770caeb6ff9897c33ccbe (diff) | |
download | llvm-2e60ca964ccb6a8531559238b28658e1aa4b0d75.zip llvm-2e60ca964ccb6a8531559238b28658e1aa4b0d75.tar.gz llvm-2e60ca964ccb6a8531559238b28658e1aa4b0d75.tar.bz2 |
Pass a unique_ptr<MemoryBuffer> to the constructors in the Binary hierarchy.
Once the objects are constructed, they own the buffer. Passing a unique_ptr
makes that clear.
llvm-svn: 211595
Diffstat (limited to 'llvm/lib/Object/COFFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 1b14974..46ef87d 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -511,8 +511,9 @@ std::error_code COFFObjectFile::initExportTablePtr() { return object_error::success; } -COFFObjectFile::COFFObjectFile(MemoryBuffer *Object, std::error_code &EC) - : ObjectFile(Binary::ID_COFF, Object), COFFHeader(nullptr), +COFFObjectFile::COFFObjectFile(std::unique_ptr<MemoryBuffer> Object, + std::error_code &EC) + : ObjectFile(Binary::ID_COFF, std::move(Object)), COFFHeader(nullptr), PE32Header(nullptr), PE32PlusHeader(nullptr), DataDirectory(nullptr), SectionTable(nullptr), SymbolTable(nullptr), StringTable(nullptr), StringTableSize(0), ImportDirectory(nullptr), NumberOfImportDirectory(0), @@ -1111,9 +1112,11 @@ ExportDirectoryEntryRef::getSymbolName(StringRef &Result) const { return object_error::success; } -ErrorOr<ObjectFile *> ObjectFile::createCOFFObjectFile(MemoryBuffer *Object) { +ErrorOr<ObjectFile *> +ObjectFile::createCOFFObjectFile(std::unique_ptr<MemoryBuffer> Object) { std::error_code EC; - std::unique_ptr<COFFObjectFile> Ret(new COFFObjectFile(Object, EC)); + std::unique_ptr<COFFObjectFile> Ret( + new COFFObjectFile(std::move(Object), EC)); if (EC) return EC; return Ret.release(); |