fix memory leak
authorChris Lattner <sabre@nondot.org>
Tue, 24 Apr 2007 17:22:05 +0000 (17:22 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 24 Apr 2007 17:22:05 +0000 (17:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36397 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Bitcode/Reader/BitcodeReader.cpp

index 99df1f9590249c2ebc9d503472dd114b6a09ea53..87f0369c2ac0dd67ecfd638a1c32511f9c966db3 100644 (file)
@@ -465,11 +465,12 @@ bool BitcodeReader::ParseConstants(BitstreamReader &Stream) {
         return Error("Invalid WIDE_INTEGER record");
       
       unsigned NumWords = Record[0];
-      uint64_t *Data = new uint64_t[NumWords];
+      SmallVector<uint64_t, 8> Words;
+      Words.resize(NumWords);
       for (unsigned i = 0; i != NumWords; ++i)
-        Data[i] = DecodeSignRotatedValue(Record[i+1]);
+        Words[i] = DecodeSignRotatedValue(Record[i+1]);
       V = ConstantInt::get(APInt(cast<IntegerType>(CurTy)->getBitWidth(),
-                                 NumWords, Data));
+                                 NumWords, &Words[0]));
       break;
     }
     case bitc::CST_CODE_FLOAT:     // FLOAT: [fpval]