version 1.1.1.1.2.1, 2013/02/05 08:27:06
|
version 1.1.1.1.2.2, 2013/03/07 15:34:26
|
Line 587 ait_sortVarsByVal(array_t * __restrict vars, int order
|
Line 587 ait_sortVarsByVal(array_t * __restrict vars, int order
|
return; |
return; |
|
|
if (cmp) |
if (cmp) |
qsort(vars->arr_data, vars->arr_num, sizeof(void*), cmp); | qsort(vars->arr_data, vars->arr_num, sizeof(uintptr_t), cmp); |
else if (order) |
else if (order) |
qsort(vars->arr_data, vars->arr_num, sizeof(void*), _cmp_arr_val_desc); | qsort(vars->arr_data, vars->arr_num, sizeof(uintptr_t), _cmp_arr_val_desc); |
else |
else |
qsort(vars->arr_data, vars->arr_num, sizeof(void*), _cmp_arr_val_asc); | qsort(vars->arr_data, vars->arr_num, sizeof(uintptr_t), _cmp_arr_val_asc); |
} |
} |
|
|
/* |
/* |
Line 608 ait_sortVarsByKey(array_t * __restrict vars, int order
|
Line 608 ait_sortVarsByKey(array_t * __restrict vars, int order
|
return; |
return; |
|
|
if (order) |
if (order) |
qsort(vars->arr_data, vars->arr_num, sizeof(void*), _cmp_arr_key_desc); | qsort(vars->arr_data, vars->arr_num, sizeof(uintptr_t), _cmp_arr_key_desc); |
else |
else |
qsort(vars->arr_data, vars->arr_num, sizeof(void*), _cmp_arr_key_asc); | qsort(vars->arr_data, vars->arr_num, sizeof(uintptr_t), _cmp_arr_key_asc); |
} |
} |
|
|
/* |
/* |
Line 634 ait_findKeyVars(array_t * __restrict vars, u_short key
|
Line 634 ait_findKeyVars(array_t * __restrict vars, u_short key
|
if (array_Copy(&tmp, vars) == -1) |
if (array_Copy(&tmp, vars) == -1) |
return NULL; |
return NULL; |
else |
else |
qsort(tmp->arr_data, tmp->arr_num, sizeof(void*), _cmp_arr_key_asc); | qsort(tmp->arr_data, tmp->arr_num, sizeof(uintptr_t), _cmp_arr_key_asc); |
|
|
/* binary search */ |
/* binary search */ |
for (p = (const u_char*) tmp->arr_data, i = array_Size(tmp); i; i >>= 1) { |
for (p = (const u_char*) tmp->arr_data, i = array_Size(tmp); i; i >>= 1) { |
vv = (ait_val_t**) (p + (i >> 1) * sizeof(void*)); | vv = (ait_val_t**) (p + (i >> 1) * sizeof(uintptr_t)); |
if (!(key - AIT_KEY(*vv))) { /* found! */ |
if (!(key - AIT_KEY(*vv))) { /* found! */ |
v = *vv; |
v = *vv; |
break; |
break; |
} |
} |
if ((key - AIT_KEY(*vv)) > 0) { /* move right key > current */ |
if ((key - AIT_KEY(*vv)) > 0) { /* move right key > current */ |
p = (const u_char*) vv + sizeof(void*); | p = (const u_char*) vv + sizeof(uintptr_t); |
i--; |
i--; |
} /* else move left */ |
} /* else move left */ |
} |
} |