summaryrefslogtreecommitdiff
path: root/lib/MC
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
commit40827c419075fafb18924c200df36f0482c44249 (patch)
treec2d434ebaa441a9bdfff399ec948a1533b1aa520 /lib/MC
parent67b95f902a51b591b6178e370d23ffaca841275d (diff)
downloadllvm-40827c419075fafb18924c200df36f0482c44249.tar.gz
llvm-40827c419075fafb18924c200df36f0482c44249.tar.bz2
llvm-40827c419075fafb18924c200df36f0482c44249.tar.xz
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')
-rw-r--r--lib/MC/MCDisassembler/EDToken.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/MC/MCDisassembler/EDToken.cpp b/lib/MC/MCDisassembler/EDToken.cpp
index de770b41ef..edbe0e0082 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;