Say what the fuzzers can no longer tell about the stale-answer guard
Dropping `dirty_size_under` from it now passes every run there is. It stays for the one entry the bottom-up ordering does not reach -- `update` draws the root for a resize before `redraw_updates` runs -- which is a hole reasoned rather than measured, and the note says which.
This commit is contained in:
1 parent
53b00c68e9
commit
25e456e0b5
1 file changed
+8
@@ -202,6 +202,14 @@ impl UiRenderState {
|
||||
// that marks a reader is in `redraw`, which is not what asked here.
|
||||
// Both retained routes are an answer, so the question is asked once
|
||||
// rather than by each of them.
|
||||
//
|
||||
// Since `a92c6ac` settles a frame strictly bottom-up, no fuzzer can
|
||||
// tell whether the second half of this still does anything: dropping
|
||||
// `dirty_size_under` passes the suite, the shrinker at 400 seeds of
|
||||
// depth 5, the oracle at 1000 of depth 6 and 2000 seeds at depth 4.
|
||||
// It stays because `update` draws the root for a resize before
|
||||
// `redraw_updates` runs at all, which that ordering does not reach --
|
||||
// a hole that is reasoned rather than measured.
|
||||
let stale =
|
||||
rsc.widgets().needs_redraw.contains(&id) || self.dirty_size_under(id, rsc.widgets());
|
||||
let replace_answer = self.answer_invalid.remove(&id) || (self.replace_answers && stale);
|
||||
|
||||
Reference in new issue
Block a user