[llvm] r215567 - Simplify memory ownership with std::unique_ptr.

Rafael Espindola rafael.espindola at gmail.com
Wed Aug 13 11:59:01 PDT 2014


Author: rafael
Date: Wed Aug 13 13:59:01 2014
New Revision: 215567

URL: http://llvm.org/viewvc/llvm-project?rev=215567&view=rev
Log:
Simplify memory ownership with std::unique_ptr.

Modified:
    llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp

Modified: llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp?rev=215567&r1=215566&r2=215567&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp Wed Aug 13 13:59:01 2014
@@ -25,16 +25,6 @@ class TestObjectCache : public ObjectCac
 public:
   TestObjectCache() : DuplicateInserted(false) { }
 
-  virtual ~TestObjectCache() {
-    // Free any buffers we've allocated.
-    SmallVectorImpl<MemoryBuffer *>::iterator it, end;
-    end = AllocatedBuffers.end();
-    for (it = AllocatedBuffers.begin(); it != end; ++it) {
-      delete *it;
-    }
-    AllocatedBuffers.clear();
-  }
-
   virtual void notifyObjectCompiled(const Module *M, const MemoryBuffer *Obj) {
     // If we've seen this module before, note that.
     const std::string ModuleID = M->getModuleIdentifier();
@@ -75,14 +65,16 @@ public:
 private:
   MemoryBuffer *copyBuffer(const MemoryBuffer *Buf) {
     // Create a local copy of the buffer.
-    MemoryBuffer *NewBuffer = MemoryBuffer::getMemBufferCopy(Buf->getBuffer());
-    AllocatedBuffers.push_back(NewBuffer);
-    return NewBuffer;
+    std::unique_ptr<MemoryBuffer> NewBuffer(
+        MemoryBuffer::getMemBufferCopy(Buf->getBuffer()));
+    MemoryBuffer *Ret = NewBuffer.get();
+    AllocatedBuffers.push_back(std::move(NewBuffer));
+    return Ret;
   }
 
   StringMap<const MemoryBuffer *> ObjMap;
   StringSet<>                     ModulesLookedUp;
-  SmallVector<MemoryBuffer *, 2>  AllocatedBuffers;
+  SmallVector<std::unique_ptr<MemoryBuffer>, 2> AllocatedBuffers;
   bool                            DuplicateInserted;
 };
 





More information about the llvm-commits mailing list