ruby-changes:23214
From: naruse <ko1@a...>
Date: Mon, 9 Apr 2012 04:17:54 +0900 (JST)
Subject: [ruby-changes:23214] naruse:r35264 (trunk): Additional experimental fix for r35261.
naruse 2012-04-09 04:17:32 +0900 (Mon, 09 Apr 2012) New Revision: 35264 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35264 Log: Additional experimental fix for r35261. Modified files: trunk/ext/json/fbuffer/fbuffer.h trunk/ext/json/generator/generator.c trunk/ext/json/generator/generator.h Index: ext/json/fbuffer/fbuffer.h =================================================================== --- ext/json/fbuffer/fbuffer.h (revision 35263) +++ ext/json/fbuffer/fbuffer.h (revision 35264) @@ -92,9 +92,9 @@ const char *newstr = StringValuePtr(str); unsigned long len = RSTRING_LEN(str); + fbuffer_append(fb, newstr, len); + RB_GC_GUARD(str); - - fbuffer_append(fb, newstr, len); } static void fbuffer_append_char(FBuffer *fb, char newchr) Index: ext/json/generator/generator.c =================================================================== --- ext/json/generator/generator.c (revision 35263) +++ ext/json/generator/generator.c (revision 35264) @@ -762,7 +762,6 @@ { VALUE tmp = rb_funcall(obj, i_to_s, 0); fbuffer_append_str(buffer, tmp); - RB_GC_GUARD(tmp); } static void generate_json_float(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj) Index: ext/json/generator/generator.h =================================================================== --- ext/json/generator/generator.h (revision 35263) +++ ext/json/generator/generator.h (revision 35264) @@ -105,6 +105,7 @@ Data_Get_Struct(Vstate, JSON_Generator_State, state); \ buffer = cState_prepare_buffer(Vstate); \ generate_json_##type(buffer, Vstate, state, self); \ + RB_GC_GUARD(Vstate); \ return fbuffer_to_s(buffer) static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/