ICU 70 released. It updates to Unicode 14, including new characters, scripts, emoji, and corresponding API constants. ICU 70 adds support for emoji properties of strings. It also updates to CLDR 40 locale data with many additions and corrections. ICU 70 also includes many other bug fixes and enhancements, especially for measurement unit formatting, and it can now be built and used with C++20 compilers. This change will require minor modifications in php7 and php8. Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com>
60 lines
2.5 KiB
Diff
60 lines
2.5 KiB
Diff
--- a/common/uarrsort.cpp
|
|
+++ b/common/uarrsort.cpp
|
|
@@ -37,7 +37,7 @@ enum {
|
|
};
|
|
|
|
static constexpr int32_t sizeInMaxAlignTs(int32_t sizeInBytes) {
|
|
- return (sizeInBytes + sizeof(std::max_align_t) - 1) / sizeof(std::max_align_t);
|
|
+ return (sizeInBytes + sizeof(max_align_t) - 1) / sizeof(max_align_t);
|
|
}
|
|
|
|
/* UComparator convenience implementations ---------------------------------- */
|
|
@@ -141,7 +141,7 @@ static void
|
|
insertionSort(char *array, int32_t length, int32_t itemSize,
|
|
UComparator *cmp, const void *context, UErrorCode *pErrorCode) {
|
|
|
|
- icu::MaybeStackArray<std::max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE)> v;
|
|
+ icu::MaybeStackArray<max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE)> v;
|
|
if (sizeInMaxAlignTs(itemSize) > v.getCapacity() &&
|
|
v.resize(sizeInMaxAlignTs(itemSize)) == nullptr) {
|
|
*pErrorCode = U_MEMORY_ALLOCATION_ERROR;
|
|
@@ -235,7 +235,7 @@ static void
|
|
quickSort(char *array, int32_t length, int32_t itemSize,
|
|
UComparator *cmp, const void *context, UErrorCode *pErrorCode) {
|
|
/* allocate two intermediate item variables (x and w) */
|
|
- icu::MaybeStackArray<std::max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE) * 2> xw;
|
|
+ icu::MaybeStackArray<max_align_t, sizeInMaxAlignTs(STACK_ITEM_SIZE) * 2> xw;
|
|
if(sizeInMaxAlignTs(itemSize)*2 > xw.getCapacity() &&
|
|
xw.resize(sizeInMaxAlignTs(itemSize) * 2) == nullptr) {
|
|
*pErrorCode=U_MEMORY_ALLOCATION_ERROR;
|
|
--- a/common/utext.cpp
|
|
+++ b/common/utext.cpp
|
|
@@ -569,7 +569,7 @@ enum {
|
|
|
|
struct ExtendedUText {
|
|
UText ut;
|
|
- std::max_align_t extension;
|
|
+ max_align_t extension;
|
|
};
|
|
|
|
static const UText emptyText = UTEXT_INITIALIZER;
|
|
@@ -584,7 +584,7 @@ utext_setup(UText *ut, int32_t extraSpac
|
|
// We need to heap-allocate storage for the new UText
|
|
int32_t spaceRequired = sizeof(UText);
|
|
if (extraSpace > 0) {
|
|
- spaceRequired = sizeof(ExtendedUText) + extraSpace - sizeof(std::max_align_t);
|
|
+ spaceRequired = sizeof(ExtendedUText) + extraSpace - sizeof(max_align_t);
|
|
}
|
|
ut = (UText *)uprv_malloc(spaceRequired);
|
|
if (ut == NULL) {
|
|
--- a/tools/toolutil/toolutil.cpp
|
|
+++ b/tools/toolutil/toolutil.cpp
|
|
@@ -266,7 +266,7 @@ struct UToolMemory {
|
|
char name[64];
|
|
int32_t capacity, maxCapacity, size, idx;
|
|
void *array;
|
|
- alignas(std::max_align_t) char staticArray[1];
|
|
+ alignas(max_align_t) char staticArray[1];
|
|
};
|
|
|
|
U_CAPI UToolMemory * U_EXPORT2
|