llvm-dis: Fix memory leak. ParseBitcodeFile should be taking ownership of
authorMichael J. Spencer <bigcheesegs@gmail.com>
Thu, 16 Dec 2010 22:37:52 +0000 (22:37 +0000)
committerMichael J. Spencer <bigcheesegs@gmail.com>
Thu, 16 Dec 2010 22:37:52 +0000 (22:37 +0000)
the MemoryBuffer*, however, it doesn't seem to delete it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122004 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-dis/llvm-dis.cpp

index 1d36188517332b550ceaac52ca1f16b8939a4a8e..b4977ced5bdd3b3ccb824bba63dac2d9a96cb7f8 100644 (file)
@@ -80,12 +80,14 @@ int main(int argc, char **argv) {
 
   std::string ErrorMessage;
   std::auto_ptr<Module> M;
-  OwningPtr<MemoryBuffer> BufferPtr;
 
-  if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr))
-    ErrorMessage = ec.message();
-  else
-    M.reset(ParseBitcodeFile(BufferPtr.take(), Context, &ErrorMessage));
+  {
+    OwningPtr<MemoryBuffer> BufferPtr;
+    if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr))
+      ErrorMessage = ec.message();
+    else
+      M.reset(ParseBitcodeFile(BufferPtr.get(), Context, &ErrorMessage));
+  }
 
   if (M.get() == 0) {
     errs() << argv[0] << ": ";