Fixed a memory bug in the MCDisassembler where
MCParsedAsmOperand objects were being leaked.
llvm-svn: 138053
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 @@
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;