| Index: source/common/uarrsort.c
|
| diff --git a/source/common/uarrsort.c b/source/common/uarrsort.c
|
| index 22c769729e00368d6feee48f230a3140f19a9c3e..bb1b5bdd785febe0374a9fd0cd67f98fd41506f1 100644
|
| --- a/source/common/uarrsort.c
|
| +++ b/source/common/uarrsort.c
|
| @@ -1,3 +1,5 @@
|
| +// Copyright (C) 2016 and later: Unicode, Inc. and others.
|
| +// License & terms of use: http://www.unicode.org/copyright.html
|
| /*
|
| *******************************************************************************
|
| *
|
| @@ -120,7 +122,7 @@ doInsertionSort(char *array, int32_t length, int32_t itemSize,
|
| if(insertionPoint<j) {
|
| char *dest=array+insertionPoint*itemSize;
|
| uprv_memcpy(pv, item, itemSize); /* v=array[j] */
|
| - uprv_memmove(dest+itemSize, dest, (j-insertionPoint)*itemSize);
|
| + uprv_memmove(dest+itemSize, dest, (j-insertionPoint)*(size_t)itemSize);
|
| uprv_memcpy(dest, pv, itemSize); /* array[insertionPoint]=v */
|
| }
|
| }
|
| @@ -181,7 +183,7 @@ subQuickSort(char *array, int32_t start, int32_t limit, int32_t itemSize,
|
| right=limit;
|
|
|
| /* x=array[middle] */
|
| - uprv_memcpy(px, array+((start+limit)/2)*itemSize, itemSize);
|
| + uprv_memcpy(px, array+(size_t)((start+limit)/2)*itemSize, itemSize);
|
|
|
| do {
|
| while(/* array[left]<x */
|
| @@ -200,9 +202,9 @@ subQuickSort(char *array, int32_t start, int32_t limit, int32_t itemSize,
|
| --right;
|
|
|
| if(left<right) {
|
| - uprv_memcpy(pw, array+left*itemSize, itemSize);
|
| - uprv_memcpy(array+left*itemSize, array+right*itemSize, itemSize);
|
| - uprv_memcpy(array+right*itemSize, pw, itemSize);
|
| + uprv_memcpy(pw, array+(size_t)left*itemSize, itemSize);
|
| + uprv_memcpy(array+(size_t)left*itemSize, array+(size_t)right*itemSize, itemSize);
|
| + uprv_memcpy(array+(size_t)right*itemSize, pw, itemSize);
|
| }
|
|
|
| ++left;
|
|
|