| OLD | NEW |
| 1 // Copyright (C) 2016 and later: Unicode, Inc. and others. | 1 // Copyright (C) 2016 and later: Unicode, Inc. and others. |
| 2 // License & terms of use: http://www.unicode.org/copyright.html | 2 // License & terms of use: http://www.unicode.org/copyright.html |
| 3 /* | 3 /* |
| 4 ******************************************************************************* | 4 ******************************************************************************* |
| 5 * | 5 * |
| 6 * Copyright (C) 2005-2016, International Business Machines | 6 * Copyright (C) 2005-2016, International Business Machines |
| 7 * Corporation and others. All Rights Reserved. | 7 * Corporation and others. All Rights Reserved. |
| 8 * | 8 * |
| 9 ******************************************************************************* | 9 ******************************************************************************* |
| 10 * file name: ucasemap.cpp | 10 * file name: ucasemap.cpp |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 return destIndex; | 193 return destIndex; |
| 194 } | 194 } |
| 195 | 195 |
| 196 static inline int32_t | 196 static inline int32_t |
| 197 appendUChar(uint8_t *dest, int32_t destIndex, int32_t destCapacity, UChar c) { | 197 appendUChar(uint8_t *dest, int32_t destIndex, int32_t destCapacity, UChar c) { |
| 198 int32_t length=U8_LENGTH(c); | 198 int32_t length=U8_LENGTH(c); |
| 199 if(length>(INT32_MAX-destIndex)) { | 199 if(length>(INT32_MAX-destIndex)) { |
| 200 return -1; // integer overflow | 200 return -1; // integer overflow |
| 201 } | 201 } |
| 202 int32_t limit=destIndex+length; | 202 int32_t limit=destIndex+length; |
| 203 if(limit<destCapacity) { | 203 if(limit<=destCapacity) { |
| 204 U8_APPEND_UNSAFE(dest, destIndex, c); | 204 U8_APPEND_UNSAFE(dest, destIndex, c); |
| 205 } | 205 } |
| 206 return limit; | 206 return limit; |
| 207 } | 207 } |
| 208 | 208 |
| 209 static inline int32_t | 209 static inline int32_t |
| 210 appendString(uint8_t *dest, int32_t destIndex, int32_t destCapacity, | 210 appendString(uint8_t *dest, int32_t destIndex, int32_t destCapacity, |
| 211 const uint8_t *s, int32_t length) { | 211 const uint8_t *s, int32_t length) { |
| 212 if(length>0) { | 212 if(length>0) { |
| 213 if(length>(INT32_MAX-destIndex)) { | 213 if(length>(INT32_MAX-destIndex)) { |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 751 U_CAPI int32_t U_EXPORT2 | 751 U_CAPI int32_t U_EXPORT2 |
| 752 ucasemap_utf8FoldCase(const UCaseMap *csm, | 752 ucasemap_utf8FoldCase(const UCaseMap *csm, |
| 753 char *dest, int32_t destCapacity, | 753 char *dest, int32_t destCapacity, |
| 754 const char *src, int32_t srcLength, | 754 const char *src, int32_t srcLength, |
| 755 UErrorCode *pErrorCode) { | 755 UErrorCode *pErrorCode) { |
| 756 return ucasemap_mapUTF8(csm, | 756 return ucasemap_mapUTF8(csm, |
| 757 (uint8_t *)dest, destCapacity, | 757 (uint8_t *)dest, destCapacity, |
| 758 (const uint8_t *)src, srcLength, | 758 (const uint8_t *)src, srcLength, |
| 759 ucasemap_internalUTF8Fold, pErrorCode); | 759 ucasemap_internalUTF8Fold, pErrorCode); |
| 760 } | 760 } |
| OLD | NEW |