diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-08 19:17:32 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-08 19:17:32 +0000 |
commit | e0ba59b708edb0fb5fdde4c7a2364d5e006705f7 (patch) | |
tree | f3a4d9a9ca3a4de399d478d650b6737c064d994e | |
parent | a4d3990f25af1cca8f409a1a783b37dc32bf894d (diff) |
Additional experimental fix for r35261.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ext/json/fbuffer/fbuffer.h | 4 | ||||
-rw-r--r-- | ext/json/generator/generator.c | 1 | ||||
-rw-r--r-- | ext/json/generator/generator.h | 1 |
3 files changed, 3 insertions, 3 deletions
diff --git a/ext/json/fbuffer/fbuffer.h b/ext/json/fbuffer/fbuffer.h index 7d1dad7404..3ff928856d 100644 --- a/ext/json/fbuffer/fbuffer.h +++ b/ext/json/fbuffer/fbuffer.h @@ -92,9 +92,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); } static void fbuffer_append_char(FBuffer *fb, char newchr) diff --git a/ext/json/generator/generator.c b/ext/json/generator/generator.c index 6eea7ff148..21fef2b657 100644 --- a/ext/json/generator/generator.c +++ b/ext/json/generator/generator.c @@ -762,7 +762,6 @@ static void generate_json_bignum(FBuffer *buffer, VALUE Vstate, JSON_Generator_S { 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) diff --git a/ext/json/generator/generator.h b/ext/json/generator/generator.h index 3220178a8f..4958cf094d 100644 --- a/ext/json/generator/generator.h +++ b/ext/json/generator/generator.h @@ -105,6 +105,7 @@ typedef struct JSON_Generator_StateStruct { 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); |