[llvm-commits] [llvm] r122004 - /llvm/trunk/tools/llvm-dis/llvm-dis.cpp

Michael J. Spencer bigcheesegs at gmail.com
Thu Dec 16 14:37:52 PST 2010


Author: mspencer
Date: Thu Dec 16 16:37:52 2010
New Revision: 122004

URL: http://llvm.org/viewvc/llvm-project?rev=122004&view=rev
Log:
llvm-dis: Fix memory leak. ParseBitcodeFile should be taking ownership of
the MemoryBuffer*, however, it doesn't seem to delete it.

Modified:
    llvm/trunk/tools/llvm-dis/llvm-dis.cpp

Modified: llvm/trunk/tools/llvm-dis/llvm-dis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-dis/llvm-dis.cpp?rev=122004&r1=122003&r2=122004&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-dis/llvm-dis.cpp (original)
+++ llvm/trunk/tools/llvm-dis/llvm-dis.cpp Thu Dec 16 16:37:52 2010
@@ -80,12 +80,14 @@
 
   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] << ": ";





More information about the llvm-commits mailing list