src/corelib/kernel/qfunctions_wince.cpp
changeset 25 e24348a560a6
parent 18 2f34d5167611
--- 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,