Skip to content

Commit 72660c4

Browse files
committed
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.
1 parent 5ffcf56 commit 72660c4

File tree

7 files changed

+26
-33
lines changed

7 files changed

+26
-33
lines changed

ext/mbstring/libmbfl/filters/mbfilter_ucs2.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ const mbfl_encoding mbfl_encoding_ucs2 = {
4747
"UCS-2",
4848
mbfl_encoding_ucs2_aliases,
4949
NULL,
50-
MBFL_ENCTYPE_WCS2BE,
50+
MBFL_ENCTYPE_WCS2,
5151
&vtbl_ucs2_wchar,
5252
&vtbl_wchar_ucs2
5353
};
@@ -58,7 +58,7 @@ const mbfl_encoding mbfl_encoding_ucs2be = {
5858
"UCS-2BE",
5959
mbfl_encoding_ucs2be_aliases,
6060
NULL,
61-
MBFL_ENCTYPE_WCS2BE,
61+
MBFL_ENCTYPE_WCS2,
6262
&vtbl_ucs2be_wchar,
6363
&vtbl_wchar_ucs2be
6464
};
@@ -69,7 +69,7 @@ const mbfl_encoding mbfl_encoding_ucs2le = {
6969
"UCS-2LE",
7070
mbfl_encoding_ucs2le_aliases,
7171
NULL,
72-
MBFL_ENCTYPE_WCS2LE,
72+
MBFL_ENCTYPE_WCS2,
7373
&vtbl_ucs2le_wchar,
7474
&vtbl_wchar_ucs2le
7575
};

ext/mbstring/libmbfl/filters/mbfilter_ucs4.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const mbfl_encoding mbfl_encoding_ucs4 = {
4444
"UCS-4",
4545
mbfl_encoding_ucs4_aliases,
4646
NULL,
47-
MBFL_ENCTYPE_WCS4BE,
47+
MBFL_ENCTYPE_WCS4,
4848
&vtbl_ucs4_wchar,
4949
&vtbl_wchar_ucs4
5050
};
@@ -55,7 +55,7 @@ const mbfl_encoding mbfl_encoding_ucs4be = {
5555
"UCS-4BE",
5656
mbfl_encoding_ucs4be_aliases,
5757
NULL,
58-
MBFL_ENCTYPE_WCS4BE,
58+
MBFL_ENCTYPE_WCS4,
5959
&vtbl_ucs4be_wchar,
6060
&vtbl_wchar_ucs4be
6161
};
@@ -66,7 +66,7 @@ const mbfl_encoding mbfl_encoding_ucs4le = {
6666
"UCS-4LE",
6767
mbfl_encoding_ucs4le_aliases,
6868
NULL,
69-
MBFL_ENCTYPE_WCS4LE,
69+
MBFL_ENCTYPE_WCS4,
7070
&vtbl_ucs4le_wchar,
7171
&vtbl_wchar_ucs4le
7272
};

ext/mbstring/libmbfl/filters/mbfilter_utf32.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const mbfl_encoding mbfl_encoding_utf32 = {
4040
"UTF-32",
4141
mbfl_encoding_utf32_aliases,
4242
NULL,
43-
MBFL_ENCTYPE_WCS4BE,
43+
MBFL_ENCTYPE_WCS4,
4444
&vtbl_utf32_wchar,
4545
&vtbl_wchar_utf32
4646
};
@@ -51,7 +51,7 @@ const mbfl_encoding mbfl_encoding_utf32be = {
5151
"UTF-32BE",
5252
NULL,
5353
NULL,
54-
MBFL_ENCTYPE_WCS4BE,
54+
MBFL_ENCTYPE_WCS4,
5555
&vtbl_utf32be_wchar,
5656
&vtbl_wchar_utf32be
5757
};
@@ -62,7 +62,7 @@ const mbfl_encoding mbfl_encoding_utf32le = {
6262
"UTF-32LE",
6363
NULL,
6464
NULL,
65-
MBFL_ENCTYPE_WCS4LE,
65+
MBFL_ENCTYPE_WCS4,
6666
&vtbl_utf32le_wchar,
6767
&vtbl_wchar_utf32le
6868
};

ext/mbstring/libmbfl/mbfl/mbfilter.c

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -484,9 +484,9 @@ mbfl_strlen(const mbfl_string *string)
484484
len = 0;
485485
if (encoding->flag & MBFL_ENCTYPE_SBCS) {
486486
len = string->len;
487-
} else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) {
487+
} else if (encoding->flag & MBFL_ENCTYPE_WCS2) {
488488
len = string->len/2;
489-
} else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) {
489+
} else if (encoding->flag & MBFL_ENCTYPE_WCS4) {
490490
len = string->len/4;
491491
} else if (encoding->mblen_table != NULL) {
492492
const unsigned char *mbtab = encoding->mblen_table;
@@ -837,14 +837,14 @@ mbfl_substr(
837837
mbfl_string_init(result);
838838
result->encoding = string->encoding;
839839

840-
if ((encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE | MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) ||
840+
if ((encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2 | MBFL_ENCTYPE_WCS4)) ||
841841
encoding->mblen_table != NULL) {
842842
len = string->len;
843843
if (encoding->flag & MBFL_ENCTYPE_SBCS) {
844844
start = from;
845-
} else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) {
845+
} else if (encoding->flag & MBFL_ENCTYPE_WCS2) {
846846
start = from*2;
847-
} else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) {
847+
} else if (encoding->flag & MBFL_ENCTYPE_WCS4) {
848848
start = from*4;
849849
} else {
850850
const unsigned char *mbtab = encoding->mblen_table;
@@ -869,9 +869,9 @@ mbfl_substr(
869869
end = len;
870870
} else if (encoding->flag & MBFL_ENCTYPE_SBCS) {
871871
end = start + length;
872-
} else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) {
872+
} else if (encoding->flag & MBFL_ENCTYPE_WCS2) {
873873
end = start + length*2;
874-
} else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) {
874+
} else if (encoding->flag & MBFL_ENCTYPE_WCS4) {
875875
end = start + length*4;
876876
} else {
877877
const unsigned char *mbtab = encoding->mblen_table;
@@ -984,18 +984,13 @@ mbfl_strcut(
984984
mbfl_string_init(result);
985985
result->encoding = string->encoding;
986986

987-
if ((encoding->flag & (MBFL_ENCTYPE_SBCS
988-
| MBFL_ENCTYPE_WCS2BE
989-
| MBFL_ENCTYPE_WCS2LE
990-
| MBFL_ENCTYPE_WCS4BE
991-
| MBFL_ENCTYPE_WCS4LE))
992-
|| encoding->mblen_table != NULL) {
987+
if ((encoding->flag & (MBFL_ENCTYPE_SBCS | MBFL_ENCTYPE_WCS2 | MBFL_ENCTYPE_WCS4)) || encoding->mblen_table != NULL) {
993988
const unsigned char *start = NULL;
994989
const unsigned char *end = NULL;
995990
unsigned char *w;
996991
size_t sz;
997992

998-
if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) {
993+
if (encoding->flag & MBFL_ENCTYPE_WCS2) {
999994
from &= -2;
1000995

1001996
if (length >= string->len - from) {
@@ -1004,7 +999,7 @@ mbfl_strcut(
1004999

10051000
start = string->val + from;
10061001
end = start + (length & -2);
1007-
} else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) {
1002+
} else if (encoding->flag & MBFL_ENCTYPE_WCS4) {
10081003
from &= -4;
10091004

10101005
if (length >= string->len - from) {

ext/mbstring/libmbfl/mbfl/mbfilter_wchar.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const mbfl_encoding mbfl_encoding_wchar = {
3838
NULL,
3939
NULL,
4040
NULL,
41-
MBFL_ENCTYPE_WCS4BE,
41+
MBFL_ENCTYPE_WCS4,
4242
NULL,
4343
NULL
4444
};

ext/mbstring/libmbfl/mbfl/mbfl_consts.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,10 @@
3333

3434
#define MBFL_ENCTYPE_SBCS 0x00000001 /* single-byte encoding */
3535
#define MBFL_ENCTYPE_MBCS 0x00000002 /* multi-byte encoding */
36-
#define MBFL_ENCTYPE_WCS2BE 0x00000010 /* 2 bytes/char, big endian */
37-
#define MBFL_ENCTYPE_WCS2LE 0x00000020 /* 2 bytes/char, little endian */
36+
#define MBFL_ENCTYPE_WCS2 0x00000010 /* 2 bytes/char */
3837
#define MBFL_ENCTYPE_MWC2BE 0x00000040 /* 2+ bytes/char, big endian */
3938
#define MBFL_ENCTYPE_MWC2LE 0x00000080 /* 2+ bytes/char, little endian */
40-
#define MBFL_ENCTYPE_WCS4BE 0x00000100 /* 4 bytes/char, big endian */
41-
#define MBFL_ENCTYPE_WCS4LE 0x00000200 /* 4 bytes/char, little endian */
39+
#define MBFL_ENCTYPE_WCS4 0x00000100 /* 4 bytes/char */
4240
#define MBFL_ENCTYPE_GL_UNSAFE 0x00004000
4341

4442
/* wchar plane, special character */

ext/mbstring/mbstring.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1714,10 +1714,10 @@ PHP_FUNCTION(mb_str_split)
17141714
if (mbfl_encoding->flag & MBFL_ENCTYPE_SBCS) { /* 1 byte */
17151715
mb_len = string.len;
17161716
chunk_len = (size_t)split_length; /* chunk length in bytes */
1717-
} else if (mbfl_encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) { /* 2 bytes */
1717+
} else if (mbfl_encoding->flag & MBFL_ENCTYPE_WCS2) { /* 2 bytes */
17181718
mb_len = string.len / 2;
17191719
chunk_len = split_length * 2;
1720-
} else if (mbfl_encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) { /* 4 bytes */
1720+
} else if (mbfl_encoding->flag & MBFL_ENCTYPE_WCS4) { /* 4 bytes */
17211721
mb_len = string.len / 4;
17221722
chunk_len = split_length * 4;
17231723
} 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
42154215
if (enc->mblen_table != NULL) {
42164216
if (s != NULL) return enc->mblen_table[*(unsigned char *)s];
42174217
}
4218-
} else if (enc->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) {
4218+
} else if (enc->flag & MBFL_ENCTYPE_WCS2) {
42194219
return 2;
4220-
} else if (enc->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) {
4220+
} else if (enc->flag & MBFL_ENCTYPE_WCS4) {
42214221
return 4;
42224222
}
42234223
}

0 commit comments

Comments
 (0)