summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-10-05 17:14:29 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-10-05 17:14:29 +0900
commitcd182c5ee14c7a799a0ce422021d6ecb6a0b166e (patch)
tree73e8678b6b572428cf2833dbb83702a99d7b1389 /string.c
parenta15996c752cccbdcad2065b9b0a22271c3bbbb99 (diff)
Adjust types to rb_enc_left_char_head
I dislike unnatural casts.
Diffstat (limited to 'string.c')
-rw-r--r--string.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/string.c b/string.c
index 4cd5f5e677..1f143853e4 100644
--- a/string.c
+++ b/string.c
@@ -5705,8 +5705,7 @@ rb_str_setbyte(VALUE str, VALUE index, VALUE value)
{
long pos = NUM2LONG(index);
long len = RSTRING_LEN(str);
- char *head, *left = 0;
- unsigned char *ptr;
+ char *ptr, *head, *left = 0;
rb_encoding *enc;
int cr = ENC_CODERANGE_UNKNOWN, width, nlen;
@@ -5717,18 +5716,18 @@ rb_str_setbyte(VALUE str, VALUE index, VALUE value)
VALUE v = rb_to_int(value);
VALUE w = rb_int_and(v, INT2FIX(0xff));
- unsigned char byte = NUM2INT(w) & 0xFF;
+ char byte = (char)(NUM2INT(w) & 0xFF);
if (!str_independent(str))
str_make_independent(str);
enc = STR_ENC_GET(str);
head = RSTRING_PTR(str);
- ptr = (unsigned char *)&head[pos];
+ ptr = &head[pos];
if (!STR_EMBED_P(str)) {
cr = ENC_CODERANGE(str);
switch (cr) {
case ENC_CODERANGE_7BIT:
- left = (char *)ptr;
+ left = ptr;
*ptr = byte;
if (ISASCII(byte)) goto end;
nlen = rb_enc_precise_mbclen(left, head+len, enc);