Ignore stale Dosh snapshots
This commit is contained in:
@@ -725,6 +725,9 @@ struct FrameBuffer {
|
||||
impl FrameBuffer {
|
||||
fn accept(&mut self, frame: Frame, last_rendered_seq: &mut u64) -> Vec<Frame> {
|
||||
if frame.snapshot {
|
||||
if frame.output_seq < *last_rendered_seq {
|
||||
return Vec::new();
|
||||
}
|
||||
self.pending.clear();
|
||||
*last_rendered_seq = frame.output_seq;
|
||||
return vec![frame];
|
||||
@@ -939,4 +942,13 @@ mod tests {
|
||||
assert_eq!(last, 20);
|
||||
assert!(buffer.accept(test_frame(12, false), &mut last).is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn frame_buffer_ignores_stale_snapshot() {
|
||||
let mut buffer = FrameBuffer::default();
|
||||
let mut last = 20;
|
||||
|
||||
assert!(buffer.accept(test_frame(19, true), &mut last).is_empty());
|
||||
assert_eq!(last, 20);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user