aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2018-04-27 18:19:18 -0700
committerandroid-build-merger <android-build-merger@google.com>2018-04-27 18:19:18 -0700
commitc14da8b46cc800e444452e7c09365ad4d312aed4 (patch)
treecddac30f8f4713a6ef40ce4e22385157fef99d58
parent5973926ba36e2406dcfff87cb8fd36550f8355e3 (diff)
parent7e316c05c63e57bd8232b3c5ff3a44281c97c855 (diff)
downloadlibbcc-master-cuttlefish-testing-release.tar.gz
am: 7e316c05c6 Change-Id: Ic85922afaa66b946aa609d9d32ddc9ef72d64cda
-rw-r--r--bcinfo/MetadataExtractor.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/bcinfo/MetadataExtractor.cpp b/bcinfo/MetadataExtractor.cpp
index 78d94e5..439d121 100644
--- a/bcinfo/MetadataExtractor.cpp
+++ b/bcinfo/MetadataExtractor.cpp
@@ -290,9 +290,7 @@ bool MetadataExtractor::populateObjectSlotMetadata(
return true;
}
- uint32_t *TmpSlotList = new uint32_t[mObjectSlotCount];
- memset(TmpSlotList, 0, mObjectSlotCount * sizeof(*TmpSlotList));
-
+ std::unique_ptr<uint32_t[]> TmpSlotList(new uint32_t[mObjectSlotCount]());
for (size_t i = 0; i < mObjectSlotCount; i++) {
llvm::MDNode *ObjectSlot = ObjectSlotMetadata->getOperand(i);
if (ObjectSlot != nullptr && ObjectSlot->getNumOperands() == 1) {
@@ -306,8 +304,8 @@ bool MetadataExtractor::populateObjectSlotMetadata(
}
}
- mObjectSlotList = TmpSlotList;
-
+ delete [] mObjectSlotList;
+ mObjectSlotList = TmpSlotList.release();
return true;
}
@@ -441,9 +439,9 @@ bool MetadataExtractor::populateForEachMetadata(
return true;
}
- uint32_t *TmpSigList = new uint32_t[mExportForEachSignatureCount];
- const char **TmpNameList = new const char*[mExportForEachSignatureCount];
- uint32_t *TmpInputCountList = new uint32_t[mExportForEachSignatureCount];
+ std::unique_ptr<uint32_t[]> TmpSigList(new uint32_t[mExportForEachSignatureCount]);
+ std::unique_ptr<const char *[]> TmpNameList(new const char*[mExportForEachSignatureCount]);
+ std::unique_ptr<uint32_t[]> TmpInputCountList(new uint32_t[mExportForEachSignatureCount]);
for (size_t i = 0; i < mExportForEachSignatureCount; i++) {
llvm::MDNode *SigNode = Signatures->getOperand(i);
@@ -489,9 +487,14 @@ bool MetadataExtractor::populateForEachMetadata(
TmpNameList[0] = RootName;
}
- mExportForEachNameList = TmpNameList;
- mExportForEachSignatureList = TmpSigList;
- mExportForEachInputCountList = TmpInputCountList;
+ delete [] mExportForEachNameList;
+ mExportForEachNameList = TmpNameList.release();
+
+ delete [] mExportForEachSignatureList;
+ mExportForEachSignatureList = TmpSigList.release();
+
+ delete [] mExportForEachInputCountList;
+ mExportForEachInputCountList = TmpInputCountList.release();
return true;
}