Lines Matching refs:Data

71 size_t MutationDispatcher::Mutate_Custom(uint8_t *Data, size_t Size,
73 return EF->LLVMFuzzerCustomMutator(Data, Size, MaxSize, Rand.Rand());
76 size_t MutationDispatcher::Mutate_CustomCrossOver(uint8_t *Data, size_t Size,
87 Data, Size, Other.data(), Other.size(), U.data(), U.size(), Rand.Rand());
91 memcpy(Data, U.data(), NewSize);
95 size_t MutationDispatcher::Mutate_ShuffleBytes(uint8_t *Data, size_t Size,
103 std::random_shuffle(Data + ShuffleStart, Data + ShuffleStart + ShuffleAmount,
108 size_t MutationDispatcher::Mutate_EraseBytes(uint8_t *Data, size_t Size,
115 // Erase Data[Idx:Idx+N].
116 memmove(Data + Idx, Data + Idx + N, Size - Idx - N);
121 size_t MutationDispatcher::Mutate_InsertByte(uint8_t *Data, size_t Size,
125 // Insert new value at Data[Idx].
126 memmove(Data + Idx + 1, Data + Idx, Size - Idx);
127 Data[Idx] = RandCh(Rand);
131 size_t MutationDispatcher::Mutate_InsertRepeatedBytes(uint8_t *Data,
140 // Insert new values at Data[Idx].
141 memmove(Data + Idx + N, Data + Idx, Size - Idx);
145 Data[Idx + i] = Byte;
149 size_t MutationDispatcher::Mutate_ChangeByte(uint8_t *Data, size_t Size,
153 Data[Idx] = RandCh(Rand);
157 size_t MutationDispatcher::Mutate_ChangeBit(uint8_t *Data, size_t Size,
161 Data[Idx] ^= 1 << Rand(8);
165 size_t MutationDispatcher::Mutate_AddWordFromManualDictionary(uint8_t *Data,
168 return AddWordFromDictionary(ManualDictionary, Data, Size, MaxSize);
172 uint8_t *Data, size_t Size, size_t MaxSize) {
173 return AddWordFromDictionary(TempAutoDictionary, Data, Size, MaxSize);
176 size_t MutationDispatcher::ApplyDictionaryEntry(uint8_t *Data, size_t Size,
186 memmove(Data + Idx + W.size(), Data + Idx, Size - Idx);
187 memcpy(Data + Idx, W.data(), W.size());
192 memcpy(Data + Idx, W.data(), W.size());
205 T Arg1, T Arg2, const uint8_t *Data, size_t Size) {
210 const uint8_t *End = Data + Size;
222 for (const uint8_t *Cur = Data;
226 Positions[NumPositions++] = Cur - Data;
236 uint8_t *Data, size_t Size, size_t MaxSize) {
241 DE = MakeDictionaryEntryFromCMP(X.A, X.B, Data, Size);
245 DE = MakeDictionaryEntryFromCMP((uint16_t)X.A, (uint16_t)X.B, Data,
248 DE = MakeDictionaryEntryFromCMP(X.A, X.B, Data, Size);
250 Size = ApplyDictionaryEntry(Data, Size, MaxSize, DE);
261 uint8_t *Data, size_t Size, size_t MaxSize) {
262 return AddWordFromDictionary(PersistentAutoDictionary, Data, Size, MaxSize);
265 size_t MutationDispatcher::AddWordFromDictionary(Dictionary &D, uint8_t *Data,
270 Size = ApplyDictionaryEntry(Data, Size, MaxSize, DE);
318 size_t MutationDispatcher::Mutate_CopyPart(uint8_t *Data, size_t Size,
322 return CopyPartOf(Data, Size, Data, Size);
324 return InsertPartOf(Data, Size, Data, Size, MaxSize);
327 size_t MutationDispatcher::Mutate_ChangeASCIIInteger(uint8_t *Data, size_t Size,
331 while (B < Size && !isdigit(Data[B])) B++;
334 while (E < Size && isdigit(Data[E])) E++;
338 uint64_t Val = Data[B] - '0';
340 Val = Val * 10 + Data[i] - '0';
355 Data[Idx] = (Val % 10) + '0';
362 size_t ChangeBinaryInteger(uint8_t *Data, size_t Size, Random &Rand) {
372 memcpy(&Val, Data + Off, sizeof(Val));
382 memcpy(Data + Off, &Val, sizeof(Val));
386 size_t MutationDispatcher::Mutate_ChangeBinaryInteger(uint8_t *Data,
391 case 3: return ChangeBinaryInteger<uint64_t>(Data, Size, Rand);
392 case 2: return ChangeBinaryInteger<uint32_t>(Data, Size, Rand);
393 case 1: return ChangeBinaryInteger<uint16_t>(Data, Size, Rand);
394 case 0: return ChangeBinaryInteger<uint8_t>(Data, Size, Rand);
400 size_t MutationDispatcher::Mutate_CrossOver(uint8_t *Data, size_t Size,
412 NewSize = CrossOver(Data, Size, O.data(), O.size(), U.data(), U.size());
426 memcpy(Data, U.data(), NewSize);
474 size_t MutationDispatcher::Mutate(uint8_t *Data, size_t Size, size_t MaxSize) {
475 return MutateImpl(Data, Size, MaxSize, Mutators);
478 size_t MutationDispatcher::DefaultMutate(uint8_t *Data, size_t Size,
480 return MutateImpl(Data, Size, MaxSize, DefaultMutators);
483 // Mutates Data in place, returns new size.
484 size_t MutationDispatcher::MutateImpl(uint8_t *Data, size_t Size,
490 Data[i] = RandCh(Rand);
492 ToASCII(Data, MaxSize);
501 size_t NewSize = (this->*(M.Fn))(Data, Size, MaxSize);
504 ToASCII(Data, NewSize);