[libFuzzer] change the way trace-based mutations are applied. Instead of a custom...
[oota-llvm.git] / lib / Fuzzer / FuzzerMutate.cpp
index 11d320b7bc372462c70bcadc3b1e8751f1760a0f..219837f4a0fa031e60db1d9efa36f46c4f0b1663 100644 (file)
@@ -250,9 +250,15 @@ void MutationDispatcher::AddWordToManualDictionary(const Unit &Word) {
 
 void MutationDispatcher::AddWordToAutoDictionary(const Unit &Word,
                                                  size_t PositionHint) {
+  static const size_t kMaxAutoDictSize = 1 << 14;
+  if (MDImpl->AutoDictionary.size() >= kMaxAutoDictSize) return;
   MDImpl->AutoDictionary.push_back({Word, PositionHint});
 }
 
+void MutationDispatcher::ClearAutoDictionary() {
+  MDImpl->AutoDictionary.clear();
+}
+
 MutationDispatcher::MutationDispatcher(FuzzerRandomBase &Rand) : Rand(Rand) {
   MDImpl = new Impl(Rand);
 }