Home | History | Annotate | Download | only in common

Lines Matching refs:itemSize

64 uprv_stableBinarySearch(char *array, int32_t limit, void *item, int32_t itemSize,
72 int32_t diff=cmp(context, item, array+i*itemSize);
96 int32_t diff=cmp(context, item, array+start*itemSize);
108 doInsertionSort(char *array, int32_t length, int32_t itemSize,
113 char *item=array+j*itemSize;
114 int32_t insertionPoint=uprv_stableBinarySearch(array, j, item, itemSize, cmp, context);
121 char *dest=array+insertionPoint*itemSize;
122 uprv_memcpy(pv, item, itemSize); /* v=array[j] */
123 uprv_memmove(dest+itemSize, dest, (j-insertionPoint)*itemSize);
124 uprv_memcpy(dest, pv, itemSize); /* array[insertionPoint]=v */
130 insertionSort(char *array, int32_t length, int32_t itemSize,
136 if(itemSize<=STACK_ITEM_SIZE) {
139 pv=uprv_malloc(itemSize);
146 doInsertionSort(array, length, itemSize, cmp, context, pv);
168 subQuickSort(char *array, int32_t start, int32_t limit, int32_t itemSize,
176 doInsertionSort(array+start*itemSize, limit-start, itemSize, cmp, context, px);
184 uprv_memcpy(px, array+((start+limit)/2)*itemSize, itemSize);
188 cmp(context, array+left*itemSize, px)<0
193 cmp(context, px, array+(right-1)*itemSize)<0
203 uprv_memcpy(pw, array+left*itemSize, itemSize);
204 uprv_memcpy(array+left*itemSize, array+right*itemSize, itemSize);
205 uprv_memcpy(array+right*itemSize, pw, itemSize);
216 subQuickSort(array, start, right, itemSize, cmp, context, px, pw);
224 subQuickSort(array, left, limit, itemSize, cmp, context, px, pw);
234 quickSort(char *array, int32_t length, int32_t itemSize,
240 if(itemSize<=STACK_ITEM_SIZE) {
243 p=uprv_malloc(2*itemSize);
250 subQuickSort(array, 0, length, itemSize,
251 cmp, context, p, (char *)p+itemSize);
262 * cast the array to char * so that array+i*itemSize works.
265 uprv_sortArray(void *array, int32_t length, int32_t itemSize,
271 if((length>0 && array==NULL) || length<0 || itemSize<=0 || cmp==NULL) {
279 insertionSort((char *)array, length, itemSize, cmp, context, pErrorCode);
281 quickSort((char *)array, length, itemSize, cmp, context, pErrorCode);