Mercurial > lbo > hg > leveldb-rs
changeset 299:b9dab37389f3
merging_iter: Reduce # of allocations in find()
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Wed, 27 Sep 2017 05:13:41 +0000 |
parents | ace2e921f68d |
children | 8ed86e8a9a5e |
files | src/merging_iter.rs |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/merging_iter.rs Tue Sep 26 20:12:12 2017 +0200 +++ b/src/merging_iter.rs Wed Sep 27 05:13:41 2017 +0000 @@ -114,10 +114,11 @@ } let mut next_ix = 0; + let (mut current, mut smallest, mut valscratch) = (vec![], vec![], vec![]); for i in 1..self.iters.len() { - if let Some((current, _)) = current_key_val(self.iters[i].as_ref()) { - if let Some((smallest, _)) = current_key_val(self.iters[next_ix].as_ref()) { + if self.iters[i].current(&mut current, &mut valscratch) { + if self.iters[next_ix].current(&mut smallest, &mut valscratch) { if self.cmp.cmp(¤t, &smallest) == ord { next_ix = i; }