[llvm-commits] [lld] r153620 - in /lld/trunk: include/lld/Core/NativeReader.h lib/Core/NativeReader.cpp tools/lld-core/lld-core.cpp

Michael J. Spencer bigcheesegs at gmail.com
Wed Mar 28 17:49:50 PDT 2012


Author: mspencer
Date: Wed Mar 28 19:49:50 2012
New Revision: 153620

URL: http://llvm.org/viewvc/llvm-project?rev=153620&view=rev
Log:
llvm::OwningPtr -> std::unique_ptr.

Modified:
    lld/trunk/include/lld/Core/NativeReader.h
    lld/trunk/lib/Core/NativeReader.cpp
    lld/trunk/tools/lld-core/lld-core.cpp

Modified: lld/trunk/include/lld/Core/NativeReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/NativeReader.h?rev=153620&r1=153619&r2=153620&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/NativeReader.h (original)
+++ lld/trunk/include/lld/Core/NativeReader.h Wed Mar 28 19:49:50 2012
@@ -12,9 +12,9 @@
 
 #include "lld/Core/File.h"
 
-#include "llvm/ADT/OwningPtr.h"
 #include "llvm/Support/system_error.h"
 
+#include <memory>
 #include <vector>
 
 namespace llvm { 
@@ -23,18 +23,17 @@
 }
 
 namespace lld {
-
   /// parseNativeObjectFileOrSTDIN - Open the specified native object file (use 
   /// stdin if the path is "-") and instantiate into an lld::File object.
-  llvm::error_code parseNativeObjectFileOrSTDIN(llvm::StringRef path
-                                              , llvm::OwningPtr<File>& result);
+  llvm::error_code parseNativeObjectFileOrSTDIN( llvm::StringRef path
+                                               , std::unique_ptr<File> &result);
 
 
   /// parseNativeObjectFile - Parse the specified native object file 
   /// (in a buffer) and instantiate into an lld::File object.
-  llvm::error_code parseNativeObjectFile(llvm::OwningPtr<llvm::MemoryBuffer>& mb
+  llvm::error_code parseNativeObjectFile(std::unique_ptr<llvm::MemoryBuffer> &mb
                                         ,llvm::StringRef path
-                                        ,llvm::OwningPtr<File>& result);
+                                        ,std::unique_ptr<File> &result);
 
 } // namespace lld
 

Modified: lld/trunk/lib/Core/NativeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/NativeReader.cpp?rev=153620&r1=153619&r2=153620&view=diff
==============================================================================
--- lld/trunk/lib/Core/NativeReader.cpp (original)
+++ lld/trunk/lib/Core/NativeReader.cpp Wed Mar 28 19:49:50 2012
@@ -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);
 }
 
 

Modified: lld/trunk/tools/lld-core/lld-core.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/tools/lld-core/lld-core.cpp?rev=153620&r1=153619&r2=153620&view=diff
==============================================================================
--- lld/trunk/tools/lld-core/lld-core.cpp (original)
+++ lld/trunk/tools/lld-core/lld-core.cpp Wed Mar 28 19:49:50 2012
@@ -550,7 +550,7 @@
 //  out << "native file: " << tempPath.str() << "\n";
   
   // read native file
-  llvm::OwningPtr<lld::File> natFile;
+  std::unique_ptr<lld::File> natFile;
   if ( error(parseNativeObjectFileOrSTDIN(tempPath, natFile)) ) 
 	return 1;
 	





More information about the llvm-commits mailing list