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 | 7b3379be20b627dee73ad8216fc0aaa6c818ac6c (patch) | |
tree | 886e23aca827032032a5e62ca0c0b58e18fe85a6 /llvm/lib/MC/MCDisassembler/EDToken.cpp | |
parent | 181d2f92b5b1a91b9fd1225d17758ea0f322af6e (diff) | |
download | llvm-7b3379be20b627dee73ad8216fc0aaa6c818ac6c.zip llvm-7b3379be20b627dee73ad8216fc0aaa6c818ac6c.tar.gz llvm-7b3379be20b627dee73ad8216fc0aaa6c818ac6c.tar.bz2 |
Fixed a memory bug in the MCDisassembler where
MCParsedAsmOperand objects were being leaked.
llvm-svn: 138053
Diffstat (limited to 'llvm/lib/MC/MCDisassembler/EDToken.cpp')
-rw-r--r-- | llvm/lib/MC/MCDisassembler/EDToken.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCDisassembler/EDToken.cpp b/llvm/lib/MC/MCDisassembler/EDToken.cpp index de770b4..edbe0e0 100644 --- a/llvm/lib/MC/MCDisassembler/EDToken.cpp +++ b/llvm/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; |