From: Alex Dowad Date: Sun, 20 Sep 2020 14:29:32 +0000 (+0200) Subject: Combine MBFL_ENCTYPE_WCS{2,4}{BE,LE} constants X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=72660c416adebb07e1dd3b1fefdbcef65bb62753;p=php Combine MBFL_ENCTYPE_WCS{2,4}{BE,LE} constants These flags identify text encodings in mbstring which use a constant number of bytes per character. While some parts of the code do use these flags, usually to detect cases which can be optimized due to constant-width encoding, nothing cares whether the encodings are 'LE' (little-endian) or 'BE' (big-endian). So we can simplify things by combining constants. --- diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ucs2.c b/ext/mbstring/libmbfl/filters/mbfilter_ucs2.c index c886654f61..efe8cc2d4a 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_ucs2.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_ucs2.c @@ -47,7 +47,7 @@ const mbfl_encoding mbfl_encoding_ucs2 = { "UCS-2", mbfl_encoding_ucs2_aliases, NULL, - MBFL_ENCTYPE_WCS2BE, + MBFL_ENCTYPE_WCS2, &vtbl_ucs2_wchar, &vtbl_wchar_ucs2 }; @@ -58,7 +58,7 @@ const mbfl_encoding mbfl_encoding_ucs2be = { "UCS-2BE", mbfl_encoding_ucs2be_aliases, NULL, - MBFL_ENCTYPE_WCS2BE, + MBFL_ENCTYPE_WCS2, &vtbl_ucs2be_wchar, &vtbl_wchar_ucs2be }; @@ -69,7 +69,7 @@ const mbfl_encoding mbfl_encoding_ucs2le = { "UCS-2LE", mbfl_encoding_ucs2le_aliases, NULL, - MBFL_ENCTYPE_WCS2LE, + MBFL_ENCTYPE_WCS2, &vtbl_ucs2le_wchar, &vtbl_wchar_ucs2le }; diff --git a/ext/mbstring/libmbfl/filters/mbfilter_ucs4.c b/ext/mbstring/libmbfl/filters/mbfilter_ucs4.c index 96ef6fbf6d..7cc432750e 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_ucs4.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_ucs4.c @@ -44,7 +44,7 @@ const mbfl_encoding mbfl_encoding_ucs4 = { "UCS-4", mbfl_encoding_ucs4_aliases, NULL, - MBFL_ENCTYPE_WCS4BE, + MBFL_ENCTYPE_WCS4, &vtbl_ucs4_wchar, &vtbl_wchar_ucs4 }; @@ -55,7 +55,7 @@ const mbfl_encoding mbfl_encoding_ucs4be = { "UCS-4BE", mbfl_encoding_ucs4be_aliases, NULL, - MBFL_ENCTYPE_WCS4BE, + MBFL_ENCTYPE_WCS4, &vtbl_ucs4be_wchar, &vtbl_wchar_ucs4be }; @@ -66,7 +66,7 @@ const mbfl_encoding mbfl_encoding_ucs4le = { "UCS-4LE", mbfl_encoding_ucs4le_aliases, NULL, - MBFL_ENCTYPE_WCS4LE, + MBFL_ENCTYPE_WCS4, &vtbl_ucs4le_wchar, &vtbl_wchar_ucs4le }; diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf32.c b/ext/mbstring/libmbfl/filters/mbfilter_utf32.c index a9a7903b5d..e56a728ddc 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_utf32.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf32.c @@ -40,7 +40,7 @@ const mbfl_encoding mbfl_encoding_utf32 = { "UTF-32", mbfl_encoding_utf32_aliases, NULL, - MBFL_ENCTYPE_WCS4BE, + MBFL_ENCTYPE_WCS4, &vtbl_utf32_wchar, &vtbl_wchar_utf32 }; @@ -51,7 +51,7 @@ const mbfl_encoding mbfl_encoding_utf32be = { "UTF-32BE", NULL, NULL, - MBFL_ENCTYPE_WCS4BE, + MBFL_ENCTYPE_WCS4, &vtbl_utf32be_wchar, &vtbl_wchar_utf32be }; @@ -62,7 +62,7 @@ const mbfl_encoding mbfl_encoding_utf32le = { "UTF-32LE", NULL, NULL, - MBFL_ENCTYPE_WCS4LE, + MBFL_ENCTYPE_WCS4, &vtbl_utf32le_wchar, &vtbl_wchar_utf32le }; diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.c b/ext/mbstring/libmbfl/mbfl/mbfilter.c index a20960f926..1904786576 100644 --- a/ext/mbstring/libmbfl/mbfl/mbfilter.c +++ b/ext/mbstring/libmbfl/mbfl/mbfilter.c @@ -484,9 +484,9 @@ mbfl_strlen(const mbfl_string *string) len = 0; if (encoding->flag & MBFL_ENCTYPE_SBCS) { len = string->len; - } else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + } else if (encoding->flag & MBFL_ENCTYPE_WCS2) { len = string->len/2; - } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + } else if (encoding->flag & MBFL_ENCTYPE_WCS4) { len = string->len/4; } else if (encoding->mblen_table != NULL) { const unsigned char *mbtab = encoding->mblen_table; @@ -837,14 +837,14 @@ mbfl_substr( mbfl_string_init(result); result->encoding = string->encoding; - if ((encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE | MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) || + if ((encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2 | MBFL_ENCTYPE_WCS4)) || encoding->mblen_table != NULL) { len = string->len; if (encoding->flag & MBFL_ENCTYPE_SBCS) { start = from; - } else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + } else if (encoding->flag & MBFL_ENCTYPE_WCS2) { start = from*2; - } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + } else if (encoding->flag & MBFL_ENCTYPE_WCS4) { start = from*4; } else { const unsigned char *mbtab = encoding->mblen_table; @@ -869,9 +869,9 @@ mbfl_substr( end = len; } else if (encoding->flag & MBFL_ENCTYPE_SBCS) { end = start + length; - } else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + } else if (encoding->flag & MBFL_ENCTYPE_WCS2) { end = start + length*2; - } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + } else if (encoding->flag & MBFL_ENCTYPE_WCS4) { end = start + length*4; } else { const unsigned char *mbtab = encoding->mblen_table; @@ -984,18 +984,13 @@ mbfl_strcut( mbfl_string_init(result); result->encoding = string->encoding; - if ((encoding->flag & (MBFL_ENCTYPE_SBCS - | MBFL_ENCTYPE_WCS2BE - | MBFL_ENCTYPE_WCS2LE - | MBFL_ENCTYPE_WCS4BE - | MBFL_ENCTYPE_WCS4LE)) - || encoding->mblen_table != NULL) { + if ((encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2 | MBFL_ENCTYPE_WCS4)) || encoding->mblen_table != NULL) { const unsigned char *start = NULL; const unsigned char *end = NULL; unsigned char *w; size_t sz; - if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + if (encoding->flag & MBFL_ENCTYPE_WCS2) { from &= -2; if (length >= string->len - from) { @@ -1004,7 +999,7 @@ mbfl_strcut( start = string->val + from; end = start + (length & -2); - } else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + } else if (encoding->flag & MBFL_ENCTYPE_WCS4) { from &= -4; if (length >= string->len - from) { diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c b/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c index f69e70a64a..a2b22c9105 100644 --- a/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c +++ b/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c @@ -38,7 +38,7 @@ const mbfl_encoding mbfl_encoding_wchar = { NULL, NULL, NULL, - MBFL_ENCTYPE_WCS4BE, + MBFL_ENCTYPE_WCS4, NULL, NULL }; diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_consts.h b/ext/mbstring/libmbfl/mbfl/mbfl_consts.h index 0f57310d5e..25d2ea0235 100644 --- a/ext/mbstring/libmbfl/mbfl/mbfl_consts.h +++ b/ext/mbstring/libmbfl/mbfl/mbfl_consts.h @@ -33,12 +33,10 @@ #define MBFL_ENCTYPE_SBCS 0x00000001 /* single-byte encoding */ #define MBFL_ENCTYPE_MBCS 0x00000002 /* multi-byte encoding */ -#define MBFL_ENCTYPE_WCS2BE 0x00000010 /* 2 bytes/char, big endian */ -#define MBFL_ENCTYPE_WCS2LE 0x00000020 /* 2 bytes/char, little endian */ +#define MBFL_ENCTYPE_WCS2 0x00000010 /* 2 bytes/char */ #define MBFL_ENCTYPE_MWC2BE 0x00000040 /* 2+ bytes/char, big endian */ #define MBFL_ENCTYPE_MWC2LE 0x00000080 /* 2+ bytes/char, little endian */ -#define MBFL_ENCTYPE_WCS4BE 0x00000100 /* 4 bytes/char, big endian */ -#define MBFL_ENCTYPE_WCS4LE 0x00000200 /* 4 bytes/char, little endian */ +#define MBFL_ENCTYPE_WCS4 0x00000100 /* 4 bytes/char */ #define MBFL_ENCTYPE_GL_UNSAFE 0x00004000 /* wchar plane, special character */ diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 6d5541f073..dd3b83649d 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -1714,10 +1714,10 @@ PHP_FUNCTION(mb_str_split) if (mbfl_encoding->flag & MBFL_ENCTYPE_SBCS) { /* 1 byte */ mb_len = string.len; chunk_len = (size_t)split_length; /* chunk length in bytes */ - } else if (mbfl_encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { /* 2 bytes */ + } else if (mbfl_encoding->flag & MBFL_ENCTYPE_WCS2) { /* 2 bytes */ mb_len = string.len / 2; chunk_len = split_length * 2; - } else if (mbfl_encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { /* 4 bytes */ + } else if (mbfl_encoding->flag & MBFL_ENCTYPE_WCS4) { /* 4 bytes */ mb_len = string.len / 4; chunk_len = split_length * 4; } else if (mbfl_encoding->mblen_table != NULL) { @@ -4215,9 +4215,9 @@ MBSTRING_API size_t php_mb_mbchar_bytes_ex(const char *s, const mbfl_encoding *e if (enc->mblen_table != NULL) { if (s != NULL) return enc->mblen_table[*(unsigned char *)s]; } - } else if (enc->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { + } else if (enc->flag & MBFL_ENCTYPE_WCS2) { return 2; - } else if (enc->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { + } else if (enc->flag & MBFL_ENCTYPE_WCS4) { return 4; } }