diff --git a/ChangeLog b/ChangeLog index a3fc2a7749..90474f1daf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 7 13:25:27 2013 NARUSE, Yui + + * ext/json/fbuffer/fbuffer.h (fbuffer_append_str): change the place of + RB_GC_GUARD. it should be after the object is used. + Fri Jun 7 13:22:43 2013 NARUSE, Yui * gc.c (before_gc_sweep): noinline can also avoid the segv instead of diff --git a/ext/json/fbuffer/fbuffer.h b/ext/json/fbuffer/fbuffer.h index af74187566..24bb088521 100644 --- a/ext/json/fbuffer/fbuffer.h +++ b/ext/json/fbuffer/fbuffer.h @@ -117,9 +117,9 @@ static void fbuffer_append_str(FBuffer *fb, VALUE str) const char *newstr = StringValuePtr(str); unsigned long len = RSTRING_LEN(str); - RB_GC_GUARD(str); - fbuffer_append(fb, newstr, len); + + RB_GC_GUARD(str); } #endif