llvm::OwningPtr -> std::unique_ptr.
llvm-svn: 153620
diff --git a/lld/lib/Core/NativeReader.cpp b/lld/lib/Core/NativeReader.cpp
index ffd216c..f3548d6 100644
--- a/lld/lib/Core/NativeReader.cpp
+++ b/lld/lib/Core/NativeReader.cpp
@@ -228,9 +228,9 @@
/// Instantiates a File object from a native object file. Ownership
/// of the MemoryBuffer is transfered to the resulting File object.
- static llvm::error_code make(llvm::OwningPtr<llvm::MemoryBuffer>& mb,
- llvm::StringRef path,
- llvm::OwningPtr<File>& result) {
+ static llvm::error_code make(std::unique_ptr<llvm::MemoryBuffer> mb,
+ llvm::StringRef path,
+ std::unique_ptr<File> &result) {
const uint8_t* const base =
reinterpret_cast<const uint8_t*>(mb->getBufferStart());
const NativeFileHeader* const header =
@@ -247,7 +247,7 @@
return make_error_code(native_reader_error::file_too_short);
// instantiate NativeFile object and add values to it as found
- NativeFile* file = new NativeFile(mb, path);
+ std::unique_ptr<NativeFile> file(new NativeFile(std::move(mb), path));
// process each chunk
for(uint32_t i=0; i < header->chunkCount; ++i) {
@@ -294,16 +294,12 @@
return make_error_code(native_reader_error::unknown_chunk_type);
}
if ( ec ) {
- delete file;
return ec;
}
-
// TO DO: validate enough chunks were used
-
- result.reset(file);
}
-
+ result.reset(file.release());
return make_error_code(native_reader_error::success);
}
@@ -622,9 +618,9 @@
// private constructor, only called by make()
- NativeFile(llvm::OwningPtr<llvm::MemoryBuffer>& mb, llvm::StringRef path) :
+ NativeFile(std::unique_ptr<llvm::MemoryBuffer> mb, llvm::StringRef path) :
lld::File(path),
- _buffer(mb.take()), // NativeFile now takes ownership of buffer
+ _buffer(std::move(mb)), // NativeFile now takes ownership of buffer
_header(NULL),
_targetsTable(NULL),
_targetsTableCount(0),
@@ -679,7 +675,7 @@
};
- llvm::OwningPtr<llvm::MemoryBuffer> _buffer;
+ std::unique_ptr<llvm::MemoryBuffer> _buffer;
const NativeFileHeader* _header;
AtomArray<DefinedAtom> _definedAtoms;
AtomArray<UndefinedAtom> _undefinedAtoms;
@@ -807,10 +803,10 @@
//
// Instantiate an lld::File from the given native object file buffer
//
-llvm::error_code parseNativeObjectFile(llvm::OwningPtr<llvm::MemoryBuffer>& mb,
- llvm::StringRef path,
- llvm::OwningPtr<File>& result) {
- return NativeFile::make(mb, path, result);
+llvm::error_code parseNativeObjectFile(std::unique_ptr<llvm::MemoryBuffer> mb,
+ llvm::StringRef path,
+ std::unique_ptr<File> &result) {
+ return NativeFile::make(std::move(mb), path, result);
}
@@ -818,14 +814,16 @@
//
// Instantiate an lld::File from the given native object file path
//
-llvm::error_code parseNativeObjectFileOrSTDIN(llvm::StringRef path,
- llvm::OwningPtr<File>& result) {
+llvm::error_code parseNativeObjectFileOrSTDIN(llvm::StringRef path,
+ std::unique_ptr<File>& result) {
llvm::OwningPtr<llvm::MemoryBuffer> mb;
llvm::error_code ec = llvm::MemoryBuffer::getFileOrSTDIN(path, mb);
if ( ec )
return ec;
- return parseNativeObjectFile(mb, path, result);
+ return parseNativeObjectFile( std::unique_ptr<llvm::MemoryBuffer>(mb.take())
+ , path
+ , result);
}