Fix for removal of a fatdb value.

This commit is contained in:
cheme 2018-08-23 17:03:55 +02:00
parent 13cae436e4
commit 42bf34fff5
1 changed files with 5 additions and 4 deletions

View File

@ -84,7 +84,7 @@ where
let out = self.raw.insert(hash.as_ref(), value)?;
let db = self.raw.db_mut();
// don't insert if it doesn't exist.
// insert if it doesn't exist.
if out.is_none() {
let aux_hash = H::hash(hash.as_ref());
db.emplace(aux_hash, DBValue::from_slice(key));
@ -96,9 +96,10 @@ where
let hash = H::hash(key);
let out = self.raw.remove(hash.as_ref())?;
// don't remove if it already exists.
// remove if it already exists.
if out.is_some() {
self.raw.db_mut().remove(&hash);
let aux_hash = H::hash(hash.as_ref());
self.raw.db_mut().remove(&aux_hash);
}
Ok(out)
@ -126,4 +127,4 @@ mod test {
let t = TrieDB::new(&memdb, &root).unwrap();
assert_eq!(t.get(&keccak::keccak(&[0x01u8, 0x23])).unwrap().unwrap(), DBValue::from_slice(&[0x01u8, 0x23]));
}
}
}