Mercurial > lbo > hg > leveldb-rs
changeset 200:2e56efaf2464
snapshot: Fix delete() logic.
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sun, 03 Sep 2017 13:16:58 +0200 |
parents | 200eddf9b38d |
children | 05f50b766e01 |
files | src/snapshot.rs |
diffstat | 1 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/snapshot.rs Sat Sep 02 19:55:10 2017 +0200 +++ b/src/snapshot.rs Sun Sep 03 13:16:58 2017 +0200 @@ -40,13 +40,23 @@ } pub fn delete(&mut self, ss: Snapshot) { + self.map.remove(&ss); if self.oldest == ss { - self.oldest += 1; + self.oldest = self.newest; + for (seq, _) in self.map.iter() { + if *seq < self.oldest { + self.oldest = *seq; + } + } } if self.newest == ss { - self.newest -= 1; + self.newest = self.oldest; + for (seq, _) in self.map.iter() { + if *seq > self.newest { + self.newest = *seq; + } + } } - self.map.remove(&ss); } pub fn empty(&self) -> bool {