packages/libs/icu/patches/010-max_align_t.patch
Hirokazu MORIKAWA aa5a0ccb7d icu: bump to 70.1
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>
2021-11-02 09:14:00 +09:00

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