ext/yajl_ext.c in yajl-ruby-0.5.9 vs ext/yajl_ext.c in yajl-ruby-0.5.10

- old
+ new

@@ -134,14 +134,10 @@ status = yajl_gen_number(w->encoder, RSTRING_PTR(str), (unsigned int)RSTRING_LEN(str)); break; case T_STRING: status = yajl_gen_string(w->encoder, (const unsigned char *)RSTRING_PTR(obj), (unsigned int)RSTRING_LEN(obj)); break; - case T_SYMBOL: - str = rb_funcall(obj, intern_to_s, 0); - status = yajl_gen_string(w->encoder, (const unsigned char *)RSTRING_PTR(str), (unsigned int)RSTRING_LEN(str)); - break; default: if (rb_respond_to(obj, intern_to_json)) { str = rb_funcall(obj, intern_to_json, 0); } else { str = rb_funcall(obj, intern_to_s, 0); @@ -582,10 +578,11 @@ VALUE rb_encoder; rb_scan_args(argc, argv, "01", &rb_encoder); if (rb_encoder == Qnil) { rb_encoder = rb_yajl_encoder_new(0, NULL, cEncoder); } - return rb_yajl_encoder_encode(1, &self, rb_encoder); + VALUE str = rb_funcall(self, intern_to_s, 0); + return rb_yajl_encoder_encode(1, &str, rb_encoder); } /* * Document-class: Hash */