A std::unique_ptr case I missed in the previous patch.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 31 Jul 2014 03:36:00 +0000 (03:36 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 31 Jul 2014 03:36:00 +0000 (03:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214379 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/Archive.h
lib/Object/Archive.cpp
lib/Object/MachOUniversal.cpp

index af6c995c1d05603b009ebc78f3a86b35083febb7..d6f9ab06549cf20713e65635324bd65e538f301a 100644 (file)
@@ -165,7 +165,8 @@ public:
   };
 
   Archive(std::unique_ptr<MemoryBuffer> Source, std::error_code &EC);
-  static ErrorOr<Archive *> create(std::unique_ptr<MemoryBuffer> Source);
+  static ErrorOr<std::unique_ptr<Archive>>
+  create(std::unique_ptr<MemoryBuffer> Source);
 
   enum Kind {
     K_GNU,
index e32bdd5c5bece0cf716ec684b0dbcb1a5f3259f1..45156f1311e9fbe987afd73d81c4e2854b659162 100644 (file)
@@ -184,12 +184,13 @@ Archive::Child::getAsBinary(LLVMContext *Context) const {
   return createBinary(std::move(*BuffOrErr), Context);
 }
 
-ErrorOr<Archive *> Archive::create(std::unique_ptr<MemoryBuffer> Source) {
+ErrorOr<std::unique_ptr<Archive>>
+Archive::create(std::unique_ptr<MemoryBuffer> Source) {
   std::error_code EC;
   std::unique_ptr<Archive> Ret(new Archive(std::move(Source), EC));
   if (EC)
     return EC;
-  return Ret.release();
+  return std::move(Ret);
 }
 
 Archive::Archive(std::unique_ptr<MemoryBuffer> Source, std::error_code &ec)
index 4ba5d9686497fc81bd21b02e3f8e3971be93f169..ece652b4c095ea63b500fd47dfa91f4ed9e8868a 100644 (file)
@@ -88,10 +88,11 @@ std::error_code MachOUniversalBinary::ObjectForArch::getAsArchive(
     std::string ObjectName = Parent->getFileName().str();
     std::unique_ptr<MemoryBuffer> ObjBuffer(
         MemoryBuffer::getMemBuffer(ObjectData, ObjectName, false));
-    ErrorOr<Archive *> Obj = Archive::create(std::move(ObjBuffer));
+    ErrorOr<std::unique_ptr<Archive>> Obj =
+        Archive::create(std::move(ObjBuffer));
     if (std::error_code EC = Obj.getError())
       return EC;
-    Result.reset(Obj.get());
+    Result = std::move(Obj.get());
     return object_error::success;
   }
   return object_error::parse_failed;