/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2011 The OpenLDAP Foundation.
+ * Copyright 2000-2015 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* turn it into a range.
*/
if ( BDB_IDL_IS_RANGE( b )
- && BDB_IDL_RANGE_FIRST( b ) <= BDB_IDL_RANGE_FIRST( a )
- && BDB_IDL_RANGE_LAST( b ) >= BDB_IDL_RANGE_LAST( a ) ) {
+ && BDB_IDL_RANGE_FIRST( b ) <= BDB_IDL_FIRST( a )
+ && BDB_IDL_RANGE_LAST( b ) >= BDB_IDL_LLAST( a ) ) {
if (idmax - idmin + 1 == a[0])
{
a[0] = NOID;
return 0;
}
+ if ( b[0] == 1 ) {
+ return bdb_idl_append_one( a, BDB_IDL_FIRST( b ));
+ }
+
ida = BDB_IDL_LAST( a );
idb = BDB_IDL_LAST( b );
if ( BDB_IDL_IS_RANGE( a ) || BDB_IDL_IS_RANGE(b) ||
return 0;
}
- if ( b[0] > 1 && ida > idb ) {
+ if ( ida > idb ) {
swap = idb;
a[a[0]] = idb;
b[b[0]] = ida;
a[0]++;
a[a[0]] = tmp;
- if ( b[0] > 1 ) {
+ {
int i = b[0] - 1;
AC_MEMCPY(a+a[0]+1, b+2, i * sizeof(ID));
a[0] += i;
ids[l+1] = ids[j];
ids[j] = a;
jstack += 2;
- if (ir-i+1 >= j-1) {
+ if (ir-i+1 >= j-l) {
istack[jstack] = ir;
istack[jstack-1] = i;
ir = j-1;
/* 8 bit Radix sort + insertion sort
*
* based on code from http://www.cubic.org/docs/radix.htm
- * with improvements by mbackes@symas.com and hyc@symas.com
+ * with improvements by ebackes@symas.com and hyc@symas.com
*
* This code is O(n) but has a relatively high constant factor. For lists
* up to ~50 Quicksort is slightly faster; up to ~100 they are even.