Imported Upstream version 58.1
[platform/upstream/icu.git] / source / common / propsvec.c
index f91a155..ed4d899 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
 *
@@ -218,7 +220,7 @@ upvec_setValue(UPropsVectors *pv,
                 *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
                 return;
             }
-            uprv_memcpy(newVectors, pv->v, rows*columns*4);
+            uprv_memcpy(newVectors, pv->v, (size_t)rows*columns*4);
             firstRow=newVectors+(firstRow-pv->v);
             lastRow=newVectors+(lastRow-pv->v);
             uprv_free(pv->v);
@@ -240,7 +242,7 @@ upvec_setValue(UPropsVectors *pv,
         if(splitFirstRow) {
             /* copy all affected rows up one and move the lastRow pointer */
             count = (int32_t)((lastRow-firstRow)+columns);
-            uprv_memmove(firstRow+columns, firstRow, count*4);
+            uprv_memmove(firstRow+columns, firstRow, (size_t)count*4);
             lastRow+=columns;
 
             /* split the range and move the firstRow pointer */
@@ -251,7 +253,7 @@ upvec_setValue(UPropsVectors *pv,
         /* split the last row */
         if(splitLastRow) {
             /* copy the last row data */
-            uprv_memcpy(lastRow+columns, lastRow, columns*4);
+            uprv_memcpy(lastRow+columns, lastRow, (size_t)columns*4);
 
             /* split the range and move the firstRow pointer */
             lastRow[1]=lastRow[columns]=(uint32_t)limit;
@@ -415,7 +417,7 @@ upvec_compact(UPropsVectors *pv, UPVecCompactHandler *handler, void *context, UE
         /* add a new values vector if it is different from the current one */
         if(count<0 || 0!=uprv_memcmp(row+2, pv->v+count, valueColumns*4)) {
             count+=valueColumns;
-            uprv_memmove(pv->v+count, row+2, valueColumns*4);
+            uprv_memmove(pv->v+count, row+2, (size_t)valueColumns*4);
         }
 
         if(start<UPVEC_FIRST_SPECIAL_CP) {
@@ -477,7 +479,7 @@ upvec_cloneArray(const UPropsVectors *pv,
 
 U_CAPI UTrie2 * U_EXPORT2
 upvec_compactToUTrie2WithRowIndexes(UPropsVectors *pv, UErrorCode *pErrorCode) {
-    UPVecToUTrie2Context toUTrie2={ NULL };
+    UPVecToUTrie2Context toUTrie2={ NULL, 0, 0, 0 };
     upvec_compact(pv, upvec_compactToUTrie2Handler, &toUTrie2, pErrorCode);
     utrie2_freeze(toUTrie2.trie, UTRIE2_16_VALUE_BITS, pErrorCode);
     if(U_FAILURE(*pErrorCode)) {