/// <summary> /// Do the fuzz process /// </summary> /// <param name="realOffset">Real offset</param> public PatchChange Process(long realOffset) { // Removes var remove = RemoveLength != null?RemoveLength.Get() : (ushort)0; // Appends var size = AppendIterations != null?AppendIterations.Get() : 0; byte[] data = size > 0 && Append != null?Append.GetChunk(size) : null; if (data == null || data.Length == 0) { return(remove > 0 ? new PatchChange(Description, realOffset, remove) : null); } // Apply the filter if (Filter != null) { var filter = Filter.Get(); if (filter != null) { data = filter.ApplyFilter(data); } } return(new PatchChange(Description, realOffset, remove, data)); }
/// <summary> /// GetHashCode /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { var hashCode = -1435047217; hashCode = hashCode * -1521134295 + Description.GetHashCodeWithNullCheck(); hashCode = hashCode * -1521134295 + Weight.GetHashCodeWithNullCheck(); hashCode = hashCode * -1521134295 + Append.GetHashCodeWithNullCheck(); hashCode = hashCode * -1521134295 + AppendIterations.GetHashCodeWithNullCheck(); hashCode = hashCode * -1521134295 + RemoveLength.GetHashCodeWithNullCheck(); hashCode = hashCode * -1521134295 + Filter.GetHashCodeWithNullCheck(); return(hashCode); }
/// <summary> /// Do the fuzz process /// </summary> /// <param name="realOffset">Real offset</param> public PatchChange Process(long realOffset) { // Removes ushort remove = RemoveLength.Get(); // Appends ushort size = _RemoveAndAppendAreSame ? remove : AppendLength.Get(); if (size == 0) { return(remove > 0 ? new PatchChange(Description, realOffset, remove) : null); } byte[] data = new byte[size]; RandomHelper.Randomize(data, 0, size, AppendByte); return(new PatchChange(Description, realOffset, data, remove)); }