]> git.sur5r.net Git - openldap/commitdiff
Fix up binary search
authorKurt Zeilenga <kurt@openldap.org>
Wed, 26 Sep 2001 03:50:48 +0000 (03:50 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Wed, 26 Sep 2001 03:50:48 +0000 (03:50 +0000)
servers/slapd/back-bdb/idl.c

index a2b54c20a2bded7caf9675170bb434c8a733e026..71666bc8624fc8ed3601a57557c4dbed735a43d5 100644 (file)
@@ -65,11 +65,7 @@ static void idl_dump( ID *ids )
 
 unsigned bdb_idl_search( ID *ids, ID id )
 {
-#if IDL_DEBUG > 0
-       idl_check( ids );
-#endif
-
-#undef IDL_BINARY_SEARCH
+#define IDL_BINARY_SEARCH 1
 #ifdef IDL_BINARY_SEARCH
        /*
         * binary search of id in ids
@@ -81,6 +77,10 @@ unsigned bdb_idl_search( ID *ids, ID id )
        int val;
        unsigned n = ids[0];
 
+#if IDL_DEBUG > 0
+       idl_check( ids );
+#endif
+
        while( 0 < n ) {
                int pivot = n >> 1;
                cursor = base + pivot;
@@ -106,17 +106,19 @@ unsigned bdb_idl_search( ID *ids, ID id )
 
 #else
        /* (reverse) linear search */
-       {
-               int i;
+       int i;
 
-               for( i=ids[0]; i; i-- ) {
-                       if( id > ids[i] ) {
-                               break;
-                       }
-               }
+#if IDL_DEBUG > 0
+       idl_check( ids );
+#endif
 
-               return i+1;
+       for( i=ids[0]; i; i-- ) {
+               if( id > ids[i] ) {
+                       break;
+               }
        }
+
+       return i+1;
 #endif
 }