mesa: bsearch implementation for WinCE.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Tue, 24 Jun 2008 01:58:55 +0000 (10:58 +0900)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Tue, 24 Jun 2008 02:00:01 +0000 (11:00 +0900)
src/mesa/main/imports.c

index d798f80e25316612ba3d0b6616c8113ed1079896..c46e5beb918d072e35c444785e08b691f2da950c 100644 (file)
@@ -765,7 +765,24 @@ void *
 _mesa_bsearch( const void *key, const void *base, size_t nmemb, size_t size, 
                int (*compar)(const void *, const void *) )
 {
+#if defined(_WIN32_WCE)
+   void *mid;
+   int cmp;
+   while (nmemb) {
+      nmemb >>= 1;
+      mid = (char *)base + nmemb * size;
+      cmp = (*compar)(key, mid);
+      if (cmp == 0)
+        return mid;
+      if (cmp > 0) {
+        base = (char *)mid + size;
+        --nmemb;
+      }
+   }
+   return NULL;
+#else
    return bsearch(key, base, nmemb, size, compar);
+#endif
 }
 
 /*@}*/
@@ -781,7 +798,7 @@ _mesa_bsearch( const void *key, const void *base, size_t nmemb, size_t size,
 char *
 _mesa_getenv( const char *var )
 {
-#if defined(_XBOX)
+#if defined(_XBOX) || defined(_WIN32_WCE)
    return NULL;
 #else
    return getenv(var);