X-Git-Url: http://git.code-monkey.de/?p=gps-watch.git;a=blobdiff_plain;f=src%2Fcommon%2Flogger.rs;h=95f4a4342a1f0320f76a98b26d5909f217442663;hp=c355bb3d47d1d3ab62cbd7dd893fd672925dd959;hb=0b173b3db802df409ba83143f9fa246252ecb63d;hpb=79f647cb1795e62c1b04113834ff13b0193dfa6a diff --git a/src/common/logger.rs b/src/common/logger.rs index c355bb3..95f4a43 100644 --- a/src/common/logger.rs +++ b/src/common/logger.rs @@ -205,18 +205,7 @@ impl<'a> SectorHeaderIter<'a> { if num_elts_to_sort != 0 { // Sort the used directory entries. - for i in (1..((num_elts_to_sort + 1) / 2) + 1).rev() { - downheap(&mut iter.indices, i - 1, num_elts_to_sort - 1, - iter.sector_header); - } - - for i in (1..num_elts_to_sort).rev() { - let t = iter.indices[0]; - iter.indices[0] = iter.indices[i]; - iter.indices[i] = t; - - downheap(&mut iter.indices, 0, i - 1, iter.sector_header); - } + iter.sort(num_elts_to_sort); } // Now put the indices of the unused directory entries in the array. @@ -255,6 +244,19 @@ impl<'a> SectorHeaderIter<'a> { iter } + + fn sort(&mut self, num_elts_to_sort: usize) { + for i in (1..((num_elts_to_sort + 1) / 2) + 1).rev() { + downheap(&mut self.indices, i - 1, num_elts_to_sort - 1, + self.sector_header); + } + + for i in (1..num_elts_to_sort).rev() { + self.indices.swap(0, i); + + downheap(&mut self.indices, 0, i - 1, self.sector_header); + } + } } impl<'a> Iterator for SectorHeaderIter<'a> {