Index the session past correctly when discarding.

This commit is contained in:
Alan Jeffrey 2017-01-05 12:08:03 +00:00
parent 3e1a242c7e
commit 5fd284cf3a

View file

@ -2110,7 +2110,8 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
} else if let Some(frame) = self.frames.get_mut(&frame_change.frame_id) {
debug!("Adding pipeline to existing frame.");
frame.load(frame_change.new_pipeline_id, frame_change.url.clone());
let evicted_id = frame.prev.get_mut(opts::get().max_session_history)
let evicted_id = frame.prev.len().checked_sub(opts::get().max_session_history)
.and_then(|index| frame.prev.get_mut(index))
.and_then(|entry| entry.pipeline_id.take());
(evicted_id, false, true, true)
} else {