Revert "string.c: share UTF-8 length table with mruby-string-ext."

This reverts commit 7cdef2b03e.
This sharing does not with C++ compilers.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2022-05-25 16:07:52 +09:00
parent 7cdef2b03e
commit 82f0ba14a9
2 changed files with 11 additions and 8 deletions
+6 -2
View File
@@ -989,7 +989,11 @@ mrb_str_succ(mrb_state *mrb, mrb_value self)
}
#ifdef MRB_UTF8_STRING
extern const char mrb_utf8len_table[];
static const char utf8len_table[] =
{
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 4, 0
};
static mrb_int
utf8code(unsigned char* p, mrb_int limit)
@@ -999,7 +1003,7 @@ utf8code(unsigned char* p, mrb_int limit)
if (p[0] < 0x80)
return p[0];
len = mrb_utf8len_table[p[0]>>3];
len = utf8len_table[p[0]>>3];
if (len <= limit && len > 1 && (p[1] & 0xc0) == 0x80) {
if (len == 2)
return ((p[0] & 0x1f) << 6) + (p[1] & 0x3f);
+5 -6
View File
@@ -239,17 +239,16 @@ mrb_gc_free_str(mrb_state *mrb, struct RString *str)
#ifdef MRB_UTF8_STRING
const char mrb_utf8len_table[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 4, 0
};
#define utf8_islead(c) ((unsigned char)((c)&0xc0) != 0x80)
mrb_int
mrb_utf8len(const char* p, const char* e)
{
mrb_int len = mrb_utf8len_table[(unsigned char)p[0] >> 3];
static const char lengths[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 4, 0
};
mrb_int len = lengths[(unsigned char)p[0] >> 3];
if (len > e - p) return 1;
switch (len) {
case 1: