--- a/src/corelib/kernel/qfunctions_wince.cpp Thu May 27 13:40:48 2010 +0300
+++ b/src/corelib/kernel/qfunctions_wince.cpp Fri Jun 11 14:24:45 2010 +0300
@@ -352,16 +352,18 @@
size_t low = 0;
size_t high = num - 1;
while (low <= high) {
- unsigned int mid = ((unsigned) (low + high)) >> 1;
+ size_t mid = (low + high) >> 1;
int c = compare(key, (char*)base + mid * size);
- if (c < 0)
+ if (c < 0) {
+ if (!mid)
+ break;
high = mid - 1;
- else if (c > 0)
+ } else if (c > 0)
low = mid + 1;
else
return (char*) base + mid * size;
}
- return (NULL);
+ return 0;
}
void *lfind(const void* key, const void* base, size_t* elements, size_t size,