Fixed a memory bug in the MCDisassembler where
authorSean Callanan <scallanan@apple.com>
Fri, 19 Aug 2011 18:23:06 +0000 (18:23 +0000)
committerSean Callanan <scallanan@apple.com>
Fri, 19 Aug 2011 18:23:06 +0000 (18:23 +0000)
MCParsedAsmOperand objects were being leaked.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138053 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MCDisassembler/EDToken.cpp

index de770b41ef35f6766b454fed53b79169772a9cc5..edbe0e0082a8ca109b25aaee0128e29679179ae4 100644 (file)
@@ -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;