fix a memory leak


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36396 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index 98ed57e..ee6d9e6 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -1299,11 +1299,12 @@
       Result = ConstantInt::get(IT, Val);
       if (Handler) Handler->handleConstantValue(Result);
     } else {
-      uint32_t numWords = read_vbr_uint();
-      uint64_t *data = new uint64_t[numWords];
-      for (uint32_t i = 0; i < numWords; ++i)
-        data[i] = read_vbr_uint64();
-      Result = ConstantInt::get(APInt(IT->getBitWidth(), numWords, data));
+      uint32_t NumWords = read_vbr_uint();
+      SmallVector<uint64_t, 8> Words;
+      Words.resize(NumWords);
+      for (uint32_t i = 0; i < NumWords; ++i)
+        Words[i] = read_vbr_uint64();
+      Result = ConstantInt::get(APInt(IT->getBitWidth(), NumWords, &Words[0]));
       if (Handler) Handler->handleConstantValue(Result);
     }
     break;