diff --git a/src/lib.rs b/src/lib.rs index d70ab41..58c393b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -195,6 +195,11 @@ impl SparseMap { where F: FnOnce(&mut Self, &mut T) -> R, { + let generation = self.generations.get(key.index)?; + if *generation != key.generation { + return None; + } + let mut value = self.buffer[key.index].take()?; let result = f(self, &mut value); self.buffer[key.index] = Some(value);