MCPcopy Create free account
hub / github.com/MultiFuzz/MultiFuzz / update

Method update

hail-fuzz/src/i2s/analysis.rs:114–142  ·  view source on GitHub ↗
(&mut self, prev: i64, next: i64)

Source from the content-addressed store, hash-verified

112
113impl StrideEstimator {
114 fn update(&mut self, prev: i64, next: i64) {
115 if prev == next {
116 return;
117 }
118
119 let prev_stride = match self.stride {
120 Some(stride) => stride,
121 None => return self.start_stride(prev, next),
122 };
123
124 if prev_stride == next.wrapping_sub(prev) {
125 self.stride_count += 1;
126 // Keep track of the furthest away we have reached from the current stride.
127 self.end = match prev_stride > 0 {
128 true => self.end.max(next),
129 false => self.end.min(next),
130 };
131 return;
132 }
133
134 if next == self.start {
135 // We returned to the start of the stride.
136 return;
137 }
138
139 // Stride does not match, update the best stride and reset.
140 self.finalize_stride(prev_stride);
141 self.start_stride(prev, next);
142 }
143
144 fn finalize_stride(&mut self, prev_stride: i64) {
145 let new = Counter { start: self.start, stride: prev_stride, end: self.end };

Callers 1

from_sequenceMethod · 0.45

Calls 2

start_strideMethod · 0.80
finalize_strideMethod · 0.80

Tested by

no test coverage detected