diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2020-02-24 19:03:15 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2020-02-24 19:17:07 +0300 |
| commit | 4dbdadf94dbfa7eaf89e54d849ae6287de6b89c5 (patch) | |
| tree | eb936bfa91fc2a68b06069a65420fa8923539536 | |
| parent | d9a328a0ade570608717b0df654306a5268c9f46 (diff) | |
| download | rust-4dbdadf94dbfa7eaf89e54d849ae6287de6b89c5.tar.gz rust-4dbdadf94dbfa7eaf89e54d849ae6287de6b89c5.zip | |
rustc_metadata: Use binary search from standard library
instead of a hand rolled one.
| -rw-r--r-- | src/librustc_metadata/rmeta/decoder.rs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/librustc_metadata/rmeta/decoder.rs b/src/librustc_metadata/rmeta/decoder.rs index 01fd637b20e..3dacd2cbe95 100644 --- a/src/librustc_metadata/rmeta/decoder.rs +++ b/src/librustc_metadata/rmeta/decoder.rs @@ -408,20 +408,12 @@ impl<'a, 'tcx> SpecializedDecoder<Span> for DecodeContext<'a, 'tcx> { { last_source_file } else { - let mut a = 0; - let mut b = imported_source_files.len(); - - while b - a > 1 { - let m = (a + b) / 2; - if imported_source_files[m].original_start_pos > lo { - b = m; - } else { - a = m; - } - } + let index = imported_source_files + .binary_search_by_key(&lo, |source_file| source_file.original_start_pos) + .unwrap_or_else(|index| index - 1); - self.last_source_file_index = a; - &imported_source_files[a] + self.last_source_file_index = index; + &imported_source_files[index] } }; |
