Bug 1067989 - Unify some more binary search uses. r=waldo

This commit is contained in:
Georg Fritzsche
2014-09-17 15:46:24 +02:00
parent aace8543d2
commit eb5c2aafa5
21 changed files with 548 additions and 408 deletions

View File

@@ -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;
}
};