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/MachOUniversal.cpp | |
parent | e8b1f91afb850bdfcd4770caeb6ff9897c33ccbe (diff) | |
download | bcm5719-llvm-2e60ca964ccb6a8531559238b28658e1aa4b0d75.tar.gz bcm5719-llvm-2e60ca964ccb6a8531559238b28658e1aa4b0d75.zip |
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/MachOUniversal.cpp')
-rw-r--r-- | llvm/lib/Object/MachOUniversal.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/Object/MachOUniversal.cpp b/llvm/lib/Object/MachOUniversal.cpp index 330454ac5a7..4ba5d968649 100644 --- a/llvm/lib/Object/MachOUniversal.cpp +++ b/llvm/lib/Object/MachOUniversal.cpp @@ -86,9 +86,9 @@ std::error_code MachOUniversalBinary::ObjectForArch::getAsArchive( StringRef ParentData = Parent->getData(); StringRef ObjectData = ParentData.substr(Header.offset, Header.size); std::string ObjectName = Parent->getFileName().str(); - MemoryBuffer *ObjBuffer = MemoryBuffer::getMemBuffer( - ObjectData, ObjectName, false); - ErrorOr<Archive *> Obj = Archive::create(ObjBuffer); + std::unique_ptr<MemoryBuffer> ObjBuffer( + MemoryBuffer::getMemBuffer(ObjectData, ObjectName, false)); + ErrorOr<Archive *> Obj = Archive::create(std::move(ObjBuffer)); if (std::error_code EC = Obj.getError()) return EC; Result.reset(Obj.get()); @@ -100,19 +100,20 @@ std::error_code MachOUniversalBinary::ObjectForArch::getAsArchive( void MachOUniversalBinary::anchor() { } ErrorOr<MachOUniversalBinary *> -MachOUniversalBinary::create(MemoryBuffer *Source) { +MachOUniversalBinary::create(std::unique_ptr<MemoryBuffer> Source) { std::error_code EC; std::unique_ptr<MachOUniversalBinary> Ret( - new MachOUniversalBinary(Source, EC)); + new MachOUniversalBinary(std::move(Source), EC)); if (EC) return EC; return Ret.release(); } -MachOUniversalBinary::MachOUniversalBinary(MemoryBuffer *Source, +MachOUniversalBinary::MachOUniversalBinary(std::unique_ptr<MemoryBuffer> Source, std::error_code &ec) - : Binary(Binary::ID_MachOUniversalBinary, Source), NumberOfObjects(0) { - if (Source->getBufferSize() < sizeof(MachO::fat_header)) { + : Binary(Binary::ID_MachOUniversalBinary, std::move(Source)), + NumberOfObjects(0) { + if (Data->getBufferSize() < sizeof(MachO::fat_header)) { ec = object_error::invalid_file_type; return; } |