diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-23 22:00:37 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-06-23 22:00:37 +0000 |
commit | 6304e941082cc97240856ff602f4ae0dfcc08230 (patch) | |
tree | b41276453a57d065caf55cb342366b79ac81b11b /llvm/lib/Object/SymbolicFile.cpp | |
parent | aed5c966849821b5368f0e742439bae579f42da3 (diff) | |
download | bcm5719-llvm-6304e941082cc97240856ff602f4ae0dfcc08230.tar.gz bcm5719-llvm-6304e941082cc97240856ff602f4ae0dfcc08230.zip |
Pass a std::unique_ptr& to the create??? methods is lib/Object.
This makes the buffer ownership on error conditions very natural. The buffer
is only moved out of the argument if an object is constructed that now
owns the buffer.
llvm-svn: 211546
Diffstat (limited to 'llvm/lib/Object/SymbolicFile.cpp')
-rw-r--r-- | llvm/lib/Object/SymbolicFile.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Object/SymbolicFile.cpp b/llvm/lib/Object/SymbolicFile.cpp index 48fea0256ef..46aba3cf059 100644 --- a/llvm/lib/Object/SymbolicFile.cpp +++ b/llvm/lib/Object/SymbolicFile.cpp @@ -25,7 +25,8 @@ SymbolicFile::SymbolicFile(unsigned int Type, MemoryBuffer *Source) SymbolicFile::~SymbolicFile() {} ErrorOr<SymbolicFile *> -SymbolicFile::createSymbolicFile(MemoryBuffer *Object, sys::fs::file_magic Type, +SymbolicFile::createSymbolicFile(std::unique_ptr<MemoryBuffer> &Object, + sys::fs::file_magic Type, LLVMContext *Context) { if (Type == sys::fs::file_magic::unknown) Type = sys::fs::identify_magic(Object->getBuffer()); @@ -33,7 +34,7 @@ SymbolicFile::createSymbolicFile(MemoryBuffer *Object, sys::fs::file_magic Type, switch (Type) { case sys::fs::file_magic::bitcode: if (Context) - return IRObjectFile::createIRObjectFile(Object, *Context); + return IRObjectFile::createIRObjectFile(Object.release(), *Context); // Fallthrough case sys::fs::file_magic::unknown: case sys::fs::file_magic::archive: |