[PATCH] D32849: Use unique_ptr for fuzzer::InputCorpus::Inputs
Takuto Ikuta via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 4 00:33:38 PDT 2017
takuto.ikuta created this revision.
Introduce unique_ptr for fuzzer::InputCorpush::Inputs.
https://reviews.llvm.org/D32849
Files:
llvm/lib/Fuzzer/FuzzerCorpus.h
Index: llvm/lib/Fuzzer/FuzzerCorpus.h
===================================================================
--- llvm/lib/Fuzzer/FuzzerCorpus.h
+++ llvm/lib/Fuzzer/FuzzerCorpus.h
@@ -17,7 +17,9 @@
#include "FuzzerRandom.h"
#include "FuzzerSHA1.h"
#include "FuzzerTracePC.h"
+#include "llvm/ADT/STLExtras.h"
#include <algorithm>
+#include <memory>
#include <numeric>
#include <random>
#include <unordered_set>
@@ -43,26 +45,22 @@
memset(InputSizesPerFeature, 0, sizeof(InputSizesPerFeature));
memset(SmallestElementPerFeature, 0, sizeof(SmallestElementPerFeature));
}
- ~InputCorpus() {
- for (auto II : Inputs)
- delete II;
- }
size_t size() const { return Inputs.size(); }
size_t SizeInBytes() const {
size_t Res = 0;
- for (auto II : Inputs)
+ for (const auto& II : Inputs)
Res += II->U.size();
return Res;
}
size_t NumActiveUnits() const {
size_t Res = 0;
- for (auto II : Inputs)
+ for (const auto& II : Inputs)
Res += !II->U.empty();
return Res;
}
size_t MaxInputSize() const {
size_t Res = 0;
- for (auto II : Inputs)
+ for (const auto& II : Inputs)
Res = std::max(Res, II->U.size());
return Res;
}
@@ -76,7 +74,7 @@
Printf("ADD_TO_CORPUS %zd NF %zd\n", Inputs.size(), NumFeatures);
ComputeSHA1(U.data(), U.size(), Hash);
Hashes.insert(Sha1ToString(Hash));
- Inputs.push_back(new InputInfo());
+ Inputs.emplace_back(llvm::make_unique<InputInfo>());
InputInfo &II = *Inputs.back();
II.U = U;
II.NumFeatures = NumFeatures;
@@ -179,7 +177,7 @@
for (size_t Idx = 0; Idx < kFeatureSetSize; Idx++)
if (GetFeature(Idx))
Inputs[SmallestElementPerFeature[Idx]]->Tmp++;
- for (auto II: Inputs) {
+ for (auto& II: Inputs) {
if (II->Tmp != II->NumFeatures)
Printf("ZZZ %zd %zd\n", II->Tmp, II->NumFeatures);
assert(II->Tmp == II->NumFeatures);
@@ -208,7 +206,7 @@
std::vector<double> Weights;
std::unordered_set<std::string> Hashes;
- std::vector<InputInfo*> Inputs;
+ std::vector<std::unique_ptr<InputInfo>> Inputs;
bool CountingFeatures = false;
size_t NumAddedFeatures = 0;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32849.97783.patch
Type: text/x-patch
Size: 2196 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170504/9f75e730/attachment.bin>
More information about the llvm-commits
mailing list