[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]