]> granicus.if.org Git - php/commitdiff
Combine MBFL_ENCTYPE_WCS{2,4}{BE,LE} constants
authorAlex Dowad <alexinbeijing@gmail.com>
Sun, 20 Sep 2020 14:29:32 +0000 (16:29 +0200)
committerAlex Dowad <alexinbeijing@gmail.com>
Wed, 25 Nov 2020 17:52:19 +0000 (19:52 +0200)
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.

ext/mbstring/libmbfl/filters/mbfilter_ucs2.c
ext/mbstring/libmbfl/filters/mbfilter_ucs4.c
ext/mbstring/libmbfl/filters/mbfilter_utf32.c
ext/mbstring/libmbfl/mbfl/mbfilter.c
ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c
ext/mbstring/libmbfl/mbfl/mbfl_consts.h
ext/mbstring/mbstring.c

index c886654f61a94924caec02a0c6a1bf1f9a037399..efe8cc2d4ac88f3f9d2999d8782659e449bda64f 100644 (file)
@@ -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
 };
index 96ef6fbf6df5771f8c2422ca3970ed76aa626c25..7cc432750edfb669d3f55137ecf6ccd60c7d30ef 100644 (file)
@@ -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
 };
index a9a7903b5db7a031c88061ee4031d01d9db08033..e56a728ddc8125eafd76b00441c7a4a8e7d0391c 100644 (file)
@@ -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
 };
index a20960f92651cf1701a746f08e3ce9239b1f1dc6..190478657603e5b033d183e29e63a06cc1fc4758 100644 (file)
@@ -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) {
index f69e70a64a423f723f278a6017e802cd05847d23..a2b22c9105acc497ca8310e890bf592dc47832d6 100644 (file)
@@ -38,7 +38,7 @@ const mbfl_encoding mbfl_encoding_wchar = {
        NULL,
        NULL,
        NULL,
-       MBFL_ENCTYPE_WCS4BE,
+       MBFL_ENCTYPE_WCS4,
        NULL,
        NULL
 };
index 0f57310d5e11f287fc4c70c8cfb0a70b5b56fa96..25d2ea0235595fb916cd4bb504cfda02b6d2945f 100644 (file)
 
 #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 */
index 6d5541f073f81d365413ae387f297f31efe151c7..dd3b83649d36df5050f2978e97cb0332f722cbb7 100644 (file)
@@ -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;
                }
        }