Skip to content

Commit 41ee658

Browse files
committed
Always treat encoding as TYPEDDATA
Encodings are RTypedData, not the deprecated RData. Although the structures are compatible we should use the correct API.
1 parent 1eb10ca commit 41ee658

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

encoding.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ enc_check_encoding(VALUE obj)
222222
if (!is_obj_encoding(obj)) {
223223
return -1;
224224
}
225-
return check_encoding(RDATA(obj)->data);
225+
return check_encoding(RTYPEDDATA_GET_DATA(obj));
226226
}
227227

228228
NORETURN(static void not_encoding(VALUE enc));
@@ -240,7 +240,7 @@ must_encoding(VALUE enc)
240240
if (index < 0) {
241241
not_encoding(enc);
242242
}
243-
return DATA_PTR(enc);
243+
return RTYPEDDATA_GET_DATA(enc);
244244
}
245245

246246
static rb_encoding *
@@ -328,15 +328,15 @@ str_to_encoding(VALUE enc)
328328
rb_encoding *
329329
rb_to_encoding(VALUE enc)
330330
{
331-
if (enc_check_encoding(enc) >= 0) return RDATA(enc)->data;
331+
if (enc_check_encoding(enc) >= 0) return RTYPEDDATA_GET_DATA(enc);
332332
return str_to_encoding(enc);
333333
}
334334

335335
rb_encoding *
336336
rb_find_encoding(VALUE enc)
337337
{
338338
int idx;
339-
if (enc_check_encoding(enc) >= 0) return RDATA(enc)->data;
339+
if (enc_check_encoding(enc) >= 0) return RTYPEDDATA_GET_DATA(enc);
340340
idx = str_find_encindex(enc);
341341
if (idx < 0) return NULL;
342342
return rb_enc_from_index(idx);
@@ -1345,7 +1345,7 @@ enc_inspect(VALUE self)
13451345
if (!is_data_encoding(self)) {
13461346
not_encoding(self);
13471347
}
1348-
if (!(enc = DATA_PTR(self)) || rb_enc_from_index(rb_enc_to_index(enc)) != enc) {
1348+
if (!(enc = RTYPEDDATA_GET_DATA(self)) || rb_enc_from_index(rb_enc_to_index(enc)) != enc) {
13491349
rb_raise(rb_eTypeError, "broken Encoding");
13501350
}
13511351

@@ -1368,7 +1368,7 @@ enc_inspect(VALUE self)
13681368
static VALUE
13691369
enc_name(VALUE self)
13701370
{
1371-
return rb_fstring_cstr(rb_enc_name((rb_encoding*)DATA_PTR(self)));
1371+
return rb_fstring_cstr(rb_enc_name((rb_encoding*)RTYPEDDATA_GET_DATA(self)));
13721372
}
13731373

13741374
static int

ext/-test-/string/fstring.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ bug_s_fstring_fake_str(VALUE self)
1919
VALUE
2020
bug_s_rb_enc_interned_str(VALUE self, VALUE encoding)
2121
{
22-
return rb_enc_interned_str("foo", 3, NIL_P(encoding) ? NULL : RDATA(encoding)->data);
22+
return rb_enc_interned_str("foo", 3, NIL_P(encoding) ? NULL : RTYPEDDATA_GET_DATA(encoding));
2323
}
2424

2525
VALUE
2626
bug_s_rb_enc_str_new(VALUE self, VALUE encoding)
2727
{
28-
return rb_enc_str_new("foo", 3, NIL_P(encoding) ? NULL : RDATA(encoding)->data);
28+
return rb_enc_str_new("foo", 3, NIL_P(encoding) ? NULL : RTYPEDDATA_GET_DATA(encoding));
2929
}
3030

3131
void

0 commit comments

Comments
 (0)