Bug 1067989 - Unify some more binary search uses. r=waldo
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
#define jArray_h
|
||||
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/BinarySearch.h"
|
||||
#include "mozilla/NullPtr.h"
|
||||
#include "nsDebug.h"
|
||||
|
||||
@@ -34,19 +35,9 @@ struct staticJArray {
|
||||
operator T*() { return arr; }
|
||||
T& operator[] (L const index) { return ((T*)arr)[index]; }
|
||||
L binarySearch(T const elem) {
|
||||
L lo = 0;
|
||||
L hi = length - 1;
|
||||
while (lo <= hi) {
|
||||
L mid = (lo + hi) / 2;
|
||||
if (arr[mid] > elem) {
|
||||
hi = mid - 1;
|
||||
} else if (arr[mid] < elem) {
|
||||
lo = mid + 1;
|
||||
} else {
|
||||
return mid;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
size_t idx;
|
||||
bool found = mozilla::BinarySearch(arr, 0, length, elem, &idx);
|
||||
return found ? idx : -1;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user