aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCDisassembler/EDToken.cpp
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2011-08-19 18:23:06 +0000
committerSean Callanan <scallanan@apple.com>2011-08-19 18:23:06 +0000
commit7b3379be20b627dee73ad8216fc0aaa6c818ac6c (patch)
tree886e23aca827032032a5e62ca0c0b58e18fe85a6 /llvm/lib/MC/MCDisassembler/EDToken.cpp
parent181d2f92b5b1a91b9fd1225d17758ea0f322af6e (diff)
downloadllvm-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.cpp6
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;