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/IRObjectFile.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/IRObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/IRObjectFile.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/Object/IRObjectFile.cpp b/llvm/lib/Object/IRObjectFile.cpp index ef544aa13b5..f20ce6cf665 100644 --- a/llvm/lib/Object/IRObjectFile.cpp +++ b/llvm/lib/Object/IRObjectFile.cpp @@ -17,14 +17,15 @@ #include "llvm/IR/Mangler.h" #include "llvm/IR/Module.h" #include "llvm/Object/IRObjectFile.h" +#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; using namespace object; -IRObjectFile::IRObjectFile(MemoryBuffer *Object, std::error_code &EC, - LLVMContext &Context) - : SymbolicFile(Binary::ID_IR, Object) { - ErrorOr<Module *> MOrErr = getLazyBitcodeModule(Object, Context); +IRObjectFile::IRObjectFile(std::unique_ptr<MemoryBuffer> Object, + std::error_code &EC, LLVMContext &Context) + : SymbolicFile(Binary::ID_IR, std::move(Object)) { + ErrorOr<Module *> MOrErr = getLazyBitcodeModule(Data.get(), Context); if ((EC = MOrErr.getError())) return; @@ -153,11 +154,11 @@ basic_symbol_iterator IRObjectFile::symbol_end_impl() const { return basic_symbol_iterator(BasicSymbolRef(Ret, this)); } -ErrorOr<SymbolicFile *> -llvm::object::SymbolicFile::createIRObjectFile(MemoryBuffer *Object, - LLVMContext &Context) { +ErrorOr<SymbolicFile *> llvm::object::SymbolicFile::createIRObjectFile( + std::unique_ptr<MemoryBuffer> Object, LLVMContext &Context) { std::error_code EC; - std::unique_ptr<IRObjectFile> Ret(new IRObjectFile(Object, EC, Context)); + std::unique_ptr<IRObjectFile> Ret( + new IRObjectFile(std::move(Object), EC, Context)); if (EC) return EC; return Ret.release(); |