diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-12-16 22:37:52 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2010-12-16 22:37:52 +0000 |
commit | a646f39c679b49a13b39ac20d4bcb2fe45025fbe (patch) | |
tree | 496fc19878a607e8adae445ebb8a173b25ae9026 /llvm/tools/llvm-dis/llvm-dis.cpp | |
parent | 7ed7afc8b7706184b61adb7d4be7a74b886f4120 (diff) | |
download | bcm5719-llvm-a646f39c679b49a13b39ac20d4bcb2fe45025fbe.tar.gz bcm5719-llvm-a646f39c679b49a13b39ac20d4bcb2fe45025fbe.zip |
llvm-dis: Fix memory leak. ParseBitcodeFile should be taking ownership of
the MemoryBuffer*, however, it doesn't seem to delete it.
llvm-svn: 122004
Diffstat (limited to 'llvm/tools/llvm-dis/llvm-dis.cpp')
-rw-r--r-- | llvm/tools/llvm-dis/llvm-dis.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/tools/llvm-dis/llvm-dis.cpp b/llvm/tools/llvm-dis/llvm-dis.cpp index 1d361885173..b4977ced5bd 100644 --- a/llvm/tools/llvm-dis/llvm-dis.cpp +++ b/llvm/tools/llvm-dis/llvm-dis.cpp @@ -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] << ": "; |