From 06480f7147ee727ef84847f0d4b8de15954c51c8 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 8 May 2024 11:29:20 +0900 Subject: [PATCH] mruby-string-ext: move local variable declarations --- mrbgems/mruby-string-ext/src/string.c | 149 ++++++++++---------------- 1 file changed, 56 insertions(+), 93 deletions(-) diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c index 82a52863e..2c46eebba 100644 --- a/mrbgems/mruby-string-ext/src/string.c +++ b/mrbgems/mruby-string-ext/src/string.c @@ -16,11 +16,10 @@ static mrb_bool casecmp_p(const char *s1, mrb_int len1, const char *s2, mrb_int len2) { - const char *e1, *e2; - if (len1 != len2) return FALSE; - e1 = s1 + len1; - e2 = s2 + len2; + + const char *e1 = s1 + len1; + const char *e2 = s2 + len2; while (s1 < e1 && s2 < e2) { if (*s1 != *s2 && TOUPPER(*s1) != TOUPPER(*s2)) return FALSE; s1++; @@ -33,14 +32,12 @@ static mrb_value int_chr_binary(mrb_state *mrb, mrb_value num) { mrb_int cp = mrb_as_int(mrb, num); - char c; - mrb_value str; if (cp < 0 || 0xff < cp) { mrb_raisef(mrb, E_RANGE_ERROR, "%v out of char range", num); } - c = (char)cp; - str = mrb_str_new(mrb, &c, 1); + char c = (char)cp; + mrb_value str = mrb_str_new(mrb, &c, 1); RSTR_SET_ASCII_FLAG(mrb_str_ptr(str)); return str; } @@ -98,13 +95,12 @@ int_chr_utf8(mrb_state *mrb, mrb_value num) static mrb_value str_swapcase_bang(mrb_state *mrb, mrb_value str) { - char *p, *pend; int modify = 0; struct RString *s = mrb_str_ptr(str); mrb_str_modify(mrb, s); - p = RSTRING_PTR(str); - pend = p + RSTRING_LEN(str); + char *p = RSTRING_PTR(str); + char *pend = p + RSTRING_LEN(str); while (p < pend) { if (ISUPPER(*p)) { *p = TOLOWER(*p); @@ -135,9 +131,7 @@ str_swapcase_bang(mrb_state *mrb, mrb_value str) static mrb_value str_swapcase(mrb_state *mrb, mrb_value self) { - mrb_value str; - - str = mrb_str_dup(mrb, self); + mrb_value str = mrb_str_dup(mrb, self); str_swapcase_bang(mrb, str); return str; } @@ -207,17 +201,16 @@ static mrb_value str_start_with(mrb_state *mrb, mrb_value self) { const mrb_value *argv; - mrb_int argc, i; + mrb_int argc; mrb_get_args(mrb, "*", &argv, &argc); - for (i = 0; i < argc; i++) { - size_t len_l, len_r; + for (mrb_int i = 0; i < argc; i++) { int ai = mrb_gc_arena_save(mrb); mrb_value sub = argv[i]; mrb_ensure_string_type(mrb, sub); mrb_gc_arena_restore(mrb, ai); - len_l = RSTRING_LEN(self); - len_r = RSTRING_LEN(sub); + size_t len_l = RSTRING_LEN(self); + size_t len_r = RSTRING_LEN(sub); if (len_l >= len_r) { if (memcmp(RSTRING_PTR(self), RSTRING_PTR(sub), len_r) == 0) { return mrb_true_value(); @@ -237,17 +230,16 @@ static mrb_value str_end_with(mrb_state *mrb, mrb_value self) { const mrb_value *argv; - mrb_int argc, i; + mrb_int argc; mrb_get_args(mrb, "*", &argv, &argc); - for (i = 0; i < argc; i++) { - size_t len_l, len_r; + for (mrb_int i = 0; i < argc; i++) { int ai = mrb_gc_arena_save(mrb); mrb_value sub = argv[i]; mrb_ensure_string_type(mrb, sub); mrb_gc_arena_restore(mrb, ai); - len_l = RSTRING_LEN(self); - len_r = RSTRING_LEN(sub); + size_t len_l = RSTRING_LEN(self); + size_t len_r = RSTRING_LEN(sub); if (len_l >= len_r) { if (memcmp(RSTRING_PTR(self) + (len_l - len_r), RSTRING_PTR(sub), @@ -305,7 +297,6 @@ tr_parse_pattern(mrb_state *mrb, struct tr_pattern *ret, const mrb_value v_patte const char *pattern = RSTRING_PTR(v_pattern); mrb_int pattern_length = RSTRING_LEN(v_pattern); mrb_bool flag_reverse = FALSE; - struct tr_pattern *pat1; mrb_int i = 0; if (flag_reverse_enable && pattern_length >= 2 && pattern[0] == '^') { @@ -316,9 +307,8 @@ tr_parse_pattern(mrb_state *mrb, struct tr_pattern *ret, const mrb_value v_patte while (i < pattern_length) { /* is range pattern ? */ mrb_bool const ret_uninit = (ret->type == TR_UNINITIALIZED); - pat1 = ret_uninit - ? ret - : (struct tr_pattern*)mrb_malloc_simple(mrb, sizeof(struct tr_pattern)); + struct tr_pattern *pat1 = ret_uninit ? ret + : (struct tr_pattern*)mrb_malloc_simple(mrb, sizeof(struct tr_pattern)); if (pat1 == NULL) { if (pat0) tr_free_pattern(mrb, pat0); tr_free_pattern(mrb, ret); @@ -338,7 +328,6 @@ tr_parse_pattern(mrb_state *mrb, struct tr_pattern *ret, const mrb_value v_patte else { /* in order pattern. */ mrb_int start_pos = i++; - mrb_int len; while (i < pattern_length) { if ((i+2) < pattern_length && pattern[i] != '\\' && pattern[i+1] == '-') @@ -346,7 +335,7 @@ tr_parse_pattern(mrb_state *mrb, struct tr_pattern *ret, const mrb_value v_patte i++; } - len = i - start_pos; + mrb_int len = i - start_pos; if (len > UINT16_MAX) { if (pat0) tr_free_pattern(mrb, pat0); tr_free_pattern(mrb, ret); @@ -382,8 +371,7 @@ tr_find_character(const struct tr_pattern *pat, const char *pat_str, int ch) while (pat != NULL) { if (pat->type == TR_IN_ORDER) { - int i; - for (i = 0; i < pat->n; i++) { + for (int i = 0; i < pat->n; i++) { if (pat_str[pat->val.start_pos + i] == ch) ret = n_sum + i; } } @@ -465,7 +453,7 @@ tr_compile_pattern(const struct tr_pattern *pat, mrb_value pstr, uint8_t bitmap[ mrb_int flag_reverse = pat ? pat->flag_reverse : 0; int i; - for (i=0; i<32; i++) { + for (int i=0; i<32; i++) { bitmap[i] = 0; } while (pat != NULL) { @@ -497,19 +485,16 @@ str_tr(mrb_state *mrb, mrb_value str, mrb_value p1, mrb_value p2, mrb_bool squee { struct tr_pattern pat = STATIC_TR_PATTERN; struct tr_pattern rep = STATIC_TR_PATTERN; - char *s; - mrb_int len; - mrb_int i; - mrb_int j; mrb_bool flag_changed = FALSE; mrb_int lastch = -1; mrb_str_modify(mrb, mrb_str_ptr(str)); tr_parse_pattern(mrb, &pat, p1, TRUE, NULL); tr_parse_pattern(mrb, &rep, p2, FALSE, &pat); - s = RSTRING_PTR(str); - len = RSTRING_LEN(str); + char *s = RSTRING_PTR(str); + mrb_int len = RSTRING_LEN(str); + mrb_int i, j; for (i=j=0; ij) s[j] = s[i]; @@ -782,10 +760,9 @@ static mrb_value str_delete_m(mrb_state *mrb, mrb_value str) { mrb_value pat; - mrb_value dup; mrb_get_args(mrb, "S", &pat); - dup = mrb_str_dup(mrb, str); + mrb_value dup = mrb_str_dup(mrb, str); str_delete(mrb, dup, pat); return dup; } @@ -817,10 +794,6 @@ static mrb_value str_count(mrb_state *mrb, mrb_value str) { mrb_value v_pat = mrb_nil_value(); - mrb_int i; - char *s; - mrb_int len; - mrb_int count = 0; struct tr_pattern pat = STATIC_TR_PATTERN; uint8_t bitmap[32]; @@ -829,9 +802,10 @@ str_count(mrb_state *mrb, mrb_value str) tr_compile_pattern(&pat, v_pat, bitmap); tr_free_pattern(mrb, &pat); - s = RSTRING_PTR(str); - len = RSTRING_LEN(str); - for (i = 0; i < len; i++) { + char *s = RSTRING_PTR(str); + mrb_int len = RSTRING_LEN(str); + mrb_int count = 0; + for (mrb_int i = 0; i < len; i++) { if (tr_bitmap_detect(bitmap, s[i])) count++; } return mrb_fixnum_value(count); @@ -915,16 +889,15 @@ static mrb_value str_succ_bang(mrb_state *mrb, mrb_value self) { mrb_value result; - unsigned char *p, *e, *b, *t; const char *prepend; struct RString *s = mrb_str_ptr(self); - mrb_int l; if (RSTRING_LEN(self) == 0) return self; mrb_str_modify(mrb, s); - l = RSTRING_LEN(self); + mrb_int l = RSTRING_LEN(self); + unsigned char *p, *e, *b, *t; b = p = (unsigned char*) RSTRING_PTR(self); t = e = p + l; *(e--) = 0; @@ -992,9 +965,7 @@ str_succ_bang(mrb_state *mrb, mrb_value self) static mrb_value str_succ(mrb_state *mrb, mrb_value self) { - mrb_value str; - - str = mrb_str_dup(mrb, self); + mrb_value str = mrb_str_dup(mrb, self); str_succ_bang(mrb, str); return str; } @@ -1005,12 +976,9 @@ extern const char mrb_utf8len_table[]; MRB_INLINE mrb_int utf8code(mrb_state* mrb, const unsigned char* p, const unsigned char *e) { - mrb_int len; + if (p[0] < 0x80) return p[0]; - if (p[0] < 0x80) - return p[0]; - - len = mrb_utf8len_table[p[0]>>3]; + mrb_int len = mrb_utf8len_table[p[0]>>3]; if (p+len <= e && len > 1 && (p[1] & 0xc0) == 0x80) { if (len == 2) return ((p[0] & 0x1f) << 6) + (p[1] & 0x3f); @@ -1045,12 +1013,11 @@ str_ord(mrb_state* mrb, mrb_value str) static mrb_value str_codepoints(mrb_state *mrb, mrb_value str) { - mrb_value result; const unsigned char *p = (unsigned char*)RSTRING_PTR(str); const unsigned char *e = p + RSTRING_LEN(str); mrb->c->ci->mid = 0; - result = mrb_ary_new(mrb); + mrb_value result = mrb_ary_new(mrb); while (p < e) { mrb_int c = utf8code(mrb, p, e); mrb_ary_push(mrb, result, mrb_int_value(mrb, c)); @@ -1070,12 +1037,11 @@ str_ord(mrb_state* mrb, mrb_value str) static mrb_value str_codepoints(mrb_state *mrb, mrb_value self) { - mrb_value result; char *p = RSTRING_PTR(self); char *e = p + RSTRING_LEN(self); mrb->c->ci->mid = 0; - result = mrb_ary_new(mrb); + mrb_value result = mrb_ary_new(mrb); while (p < e) { mrb_ary_push(mrb, result, mrb_int_value(mrb, (mrb_int)*p)); p++; @@ -1097,15 +1063,14 @@ str_codepoints(mrb_state *mrb, mrb_value self) static mrb_value str_del_prefix_bang(mrb_state *mrb, mrb_value self) { - mrb_int plen, slen; + mrb_int plen; const char *ptr; - char *s; struct RString *str = RSTRING(self); mrb_get_args(mrb, "s", &ptr, &plen); - slen = RSTR_LEN(str); + mrb_int slen = RSTR_LEN(str); if (plen > slen) return mrb_nil_value(); - s = RSTR_PTR(str); + char *s = RSTR_PTR(str); if (memcmp(s, ptr, plen) != 0) return mrb_nil_value(); if (!mrb_frozen_p(str) && (RSTR_SHARED_P(str) || RSTR_FSHARED_P(str))) { str->as.heap.ptr += plen; @@ -1131,11 +1096,11 @@ str_del_prefix_bang(mrb_state *mrb, mrb_value self) static mrb_value str_del_prefix(mrb_state *mrb, mrb_value self) { - mrb_int plen, slen; + mrb_int plen; const char *ptr; mrb_get_args(mrb, "s", &ptr, &plen); - slen = RSTRING_LEN(self); + mrb_int slen = RSTRING_LEN(self); if (plen > slen) return mrb_str_dup(mrb, self); if (memcmp(RSTRING_PTR(self), ptr, plen) != 0) return mrb_str_dup(mrb, self); @@ -1155,15 +1120,14 @@ str_del_prefix(mrb_state *mrb, mrb_value self) static mrb_value str_del_suffix_bang(mrb_state *mrb, mrb_value self) { - mrb_int plen, slen; + mrb_int plen; const char *ptr; - char *s; struct RString *str = RSTRING(self); mrb_get_args(mrb, "s", &ptr, &plen); - slen = RSTR_LEN(str); + mrb_int slen = RSTR_LEN(str); if (plen > slen) return mrb_nil_value(); - s = RSTR_PTR(str); + char *s = RSTR_PTR(str); if (memcmp(s+slen-plen, ptr, plen) != 0) return mrb_nil_value(); if (!mrb_frozen_p(str) && (RSTR_SHARED_P(str) || RSTR_FSHARED_P(str))) { /* no need to modify string */ @@ -1187,11 +1151,11 @@ str_del_suffix_bang(mrb_state *mrb, mrb_value self) static mrb_value str_del_suffix(mrb_state *mrb, mrb_value self) { - mrb_int plen, slen; + mrb_int plen; const char *ptr; mrb_get_args(mrb, "s", &ptr, &plen); - slen = RSTRING_LEN(self); + mrb_int slen = RSTRING_LEN(self); if (plen > slen) return mrb_str_dup(mrb, self); if (memcmp(RSTRING_PTR(self)+slen-plen, ptr, plen) != 0) return mrb_str_dup(mrb, self); @@ -1259,7 +1223,6 @@ static mrb_value str_lines(mrb_state *mrb, mrb_value self) { mrb_value result; - int ai; mrb_int len; char *b = RSTRING_PTR(self); char *p = b, *t; @@ -1267,7 +1230,7 @@ str_lines(mrb_state *mrb, mrb_value self) mrb->c->ci->mid = 0; result = mrb_ary_new(mrb); - ai = mrb_gc_arena_save(mrb); + int ai = mrb_gc_arena_save(mrb); while (p < e) { t = p; while (p < e && *p != '\n') p++; @@ -1364,7 +1327,7 @@ str_ascii_only_p(mrb_state *mrb, mrb_value str) void mrb_mruby_string_ext_gem_init(mrb_state* mrb) { - struct RClass * s = mrb->string_class; + struct RClass *s = mrb->string_class; mrb_define_method(mrb, s, "dump", mrb_str_dump, MRB_ARGS_NONE()); mrb_define_method(mrb, s, "swapcase!", str_swapcase_bang, MRB_ARGS_NONE());