From c448aa66565252298028dec1a5fbc23ab6e24440 Mon Sep 17 00:00:00 2001 From: "Michael J. Spencer" Date: Thu, 16 Dec 2010 22:37:52 +0000 Subject: llvm-dis: Fix memory leak. ParseBitcodeFile should be taking ownership of 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 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'tools/llvm-dis') diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp index 1d36188517..b4977ced5b 100644 --- a/tools/llvm-dis/llvm-dis.cpp +++ b/tools/llvm-dis/llvm-dis.cpp @@ -80,12 +80,14 @@ int main(int argc, char **argv) { std::string ErrorMessage; std::auto_ptr M; - OwningPtr BufferPtr; - if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr)) - ErrorMessage = ec.message(); - else - M.reset(ParseBitcodeFile(BufferPtr.take(), Context, &ErrorMessage)); + { + OwningPtr 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] << ": "; -- cgit v1.2.3