Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Unified Diff: lib/src/utils.dart

Issue 1319303004: Optimize successive calls SourceFile.getLine(). (Closed) Base URL: https://github.com/dart-lang/source_span.git@master
Patch Set: Add boundary case checking back in and remove tests for old binary search. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/location.dart ('k') | pubspec.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/utils.dart
diff --git a/lib/src/utils.dart b/lib/src/utils.dart
index 2d3386542dceb182631363fe3e4041deacb92bee..fa0895784f2685639b311fe14b22d79a6429e9f7 100644
--- a/lib/src/utils.dart
+++ b/lib/src/utils.dart
@@ -14,29 +14,6 @@ Comparable min(Comparable obj1, Comparable obj2) =>
Comparable max(Comparable obj1, Comparable obj2) =>
obj1.compareTo(obj2) > 0 ? obj1 : obj2;
-/// Find the first entry in a sorted [list] that matches a monotonic predicate.
-///
-/// Given a result `n`, that all items before `n` will not match, `n` matches,
-/// and all items after `n` match too. The result is -1 when there are no
-/// items, 0 when all items match, and list.length when none does.
-int binarySearch(List list, bool matches(item)) {
- if (list.length == 0) return -1;
- if (matches(list.first)) return 0;
- if (!matches(list.last)) return list.length;
-
- int min = 0;
- int max = list.length - 1;
- while (min < max) {
- var half = min + ((max - min) ~/ 2);
- if (matches(list[half])) {
- max = half;
- } else {
- min = half + 1;
- }
- }
- return max;
-}
-
/// Finds a line in [context] containing [text] at the specified [column].
///
/// Returns the index in [context] where that line begins, or null if none
« no previous file with comments | « lib/src/location.dart ('k') | pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698