diff --git a/ext/oj/dump.c b/ext/oj/dump.c index 07b4eec2..1d449388 100644 --- a/ext/oj/dump.c +++ b/ext/oj/dump.c @@ -708,10 +708,10 @@ void oj_write_obj_to_stream(VALUE obj, VALUE stream, Options copts) { } void oj_dump_str(VALUE obj, int depth, Out out, bool as_ok) { - rb_encoding *enc = rb_to_encoding(rb_obj_encoding(obj)); + rb_encoding *enc = rb_enc_get(obj); - if (rb_utf8_encoding() != enc) { - obj = rb_str_conv_enc(obj, enc, rb_utf8_encoding()); + if (oj_utf8_encoding != enc) { + obj = rb_str_conv_enc(obj, enc, oj_utf8_encoding); } oj_dump_cstr(RSTRING_PTR(obj), (int)RSTRING_LEN(obj), 0, 0, out); } diff --git a/ext/oj/parse.c b/ext/oj/parse.c index 9094d6a5..992b5253 100644 --- a/ext/oj/parse.c +++ b/ext/oj/parse.c @@ -964,10 +964,10 @@ static VALUE protect_parse(VALUE pip) { extern int oj_utf8_index; static void oj_pi_set_input_str(ParseInfo pi, volatile VALUE *inputp) { - rb_encoding *enc = rb_to_encoding(rb_obj_encoding(*inputp)); + rb_encoding *enc = rb_enc_get(*inputp); - if (rb_utf8_encoding() != enc) { - *inputp = rb_str_conv_enc(*inputp, enc, rb_utf8_encoding()); + if (oj_utf8_encoding != enc) { + *inputp = rb_str_conv_enc(*inputp, enc, oj_utf8_encoding); } pi->json = RSTRING_PTR(*inputp); pi->end = pi->json + RSTRING_LEN(*inputp);