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
*/