diff options
author | Sean Callanan <scallanan@apple.com> | 2011-08-19 18:23:06 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2011-08-19 18:23:06 +0000 |
commit | 40827c419075fafb18924c200df36f0482c44249 (patch) | |
tree | c2d434ebaa441a9bdfff399ec948a1533b1aa520 /lib/MC/MCDisassembler | |
parent | 67b95f902a51b591b6178e370d23ffaca841275d (diff) | |
download | external_llvm-40827c419075fafb18924c200df36f0482c44249.zip external_llvm-40827c419075fafb18924c200df36f0482c44249.tar.gz external_llvm-40827c419075fafb18924c200df36f0482c44249.tar.bz2 |
Fixed a memory bug in the MCDisassembler where
MCParsedAsmOperand objects were being leaked.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138053 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCDisassembler')
-rw-r--r-- | lib/MC/MCDisassembler/EDToken.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/MC/MCDisassembler/EDToken.cpp b/lib/MC/MCDisassembler/EDToken.cpp index de770b4..edbe0e0 100644 --- a/lib/MC/MCDisassembler/EDToken.cpp +++ b/lib/MC/MCDisassembler/EDToken.cpp @@ -93,8 +93,12 @@ int EDToken::tokenize(std::vector<EDToken*> &tokens, SmallVector<AsmToken, 10> asmTokens; if (disassembler.parseInst(parsedOperands, asmTokens, str)) + { + for (unsigned i = 0, e = parsedOperands.size(); i != e; ++i) + delete parsedOperands[i]; return -1; - + } + SmallVectorImpl<MCParsedAsmOperand*>::iterator operandIterator; unsigned int operandIndex; SmallVectorImpl<AsmToken>::iterator tokenIterator; |