#1310: JSON.parse fails with NSString -----------------------------------+---------------------------------------- Reporter: isaackearse@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Comment(by watson1978@…): Maybe, {{{ #!diff diff --git a/ext/json/parser/parser.rl b/ext/json/parser/parser.rl index 5862698..1251c63 100644 --- a/ext/json/parser/parser.rl +++ b/ext/json/parser/parser.rl @@ -1,4 +1,5 @@ #include "parser.h" +RUBY_EXTERN VALUE rb_cRubyString; /* unicode */ @@ -634,7 +635,11 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) VALUE source, opts; GET_PARSER; rb_scan_args(argc, argv, "11", &source, &opts); - source = convert_encoding(StringValue(source)); + StringValue(source); + if (CLASS_OF(source) == rb_cRubyString) { + // MacRuby : convert only RubyString + source = convert_encoding(source); + } ptr = RSTRING_PTR(source); len = RSTRING_LEN(source); if (!NIL_P(opts)) { }}} create parser.c {{{ $ ragel parser.rl }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1310#comment:4> MacRuby <http://macruby.org/>