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

ruby-changes:20920

From: tadf <ko1@a...>
Date: Sat, 13 Aug 2011 17:07:28 +0900 (JST)
Subject: [ruby-changes:20920] tadf:r32969 (ruby_1_9_3): * ext/date/date_core.c:

tadf	2011-08-13 17:07:18 +0900 (Sat, 13 Aug 2011)

  New Revision: 32969

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32969

  Log:
    * ext/date/date_core.c: [ruby-core:38861]

  Modified files:
    branches/ruby_1_9_3/ChangeLog
    branches/ruby_1_9_3/ext/date/date_core.c

Index: ruby_1_9_3/ChangeLog
===================================================================
--- ruby_1_9_3/ChangeLog	(revision 32968)
+++ ruby_1_9_3/ChangeLog	(revision 32969)
@@ -1,3 +1,7 @@
+Sat Aug 13 17:06:57 2011  Tadayoshi Funaba  <tadf@d...>
+
+	* ext/date/date_core.c: [ruby-core:38861]
+
 Sat Aug 13 16:59:51 2011  Tadayoshi Funaba  <tadf@d...>
 
 	* test/date/test_*.rb: added tests.
Index: ruby_1_9_3/ext/date/date_core.c
===================================================================
--- ruby_1_9_3/ext/date/date_core.c	(revision 32968)
+++ ruby_1_9_3/ext/date/date_core.c	(revision 32969)
@@ -6609,30 +6609,39 @@
 mk_inspect_raw(union DateData *x, const char *klass)
 {
     if (simple_dat_p(x)) {
+	VALUE nth, flags;
+
+	RB_GC_GUARD(nth) = f_inspect(x->s.nth);
+	RB_GC_GUARD(flags) = mk_inspect_flags(x);
+
 	return rb_enc_sprintf(rb_usascii_encoding(),
 			      "#<%s: "
 			      "(%sth,%dj),+0s,%.0fj; "
 			      "%dy%dm%dd; %s>",
 			      klass ? klass : "?",
-			      RSTRING_PTR(f_inspect(x->s.nth)),
-			      x->s.jd, x->s.sg,
+			      RSTRING_PTR(nth), x->s.jd, x->s.sg,
 #ifndef USE_PACK
 			      x->s.year, x->s.mon, x->s.mday,
 #else
 			      x->s.year,
 			      EX_MON(x->s.pc), EX_MDAY(x->s.pc),
 #endif
-			      RSTRING_PTR(mk_inspect_flags(x)));
+			      RSTRING_PTR(flags));
     }
     else {
+	VALUE nth, sf, flags;
+
+	RB_GC_GUARD(nth) = f_inspect(x->c.nth);
+	RB_GC_GUARD(sf) = f_inspect(x->c.sf);
+	RB_GC_GUARD(flags) = mk_inspect_flags(x);
+
 	return rb_enc_sprintf(rb_usascii_encoding(),
 			      "#<%s: "
 			      "(%sth,%dj,%ds,%sn),%+ds,%.0fj; "
 			      "%dy%dm%dd %dh%dm%ds; %s>",
 			      klass ? klass : "?",
-			      RSTRING_PTR(f_inspect(x->c.nth)),
-			      x->c.jd, x->c.df,
-			      RSTRING_PTR(f_inspect(x->c.sf)),
+			      RSTRING_PTR(nth), x->c.jd, x->c.df,
+			      RSTRING_PTR(sf),
 			      x->c.of, x->c.sg,
 #ifndef USE_PACK
 			      x->c.year, x->c.mon, x->c.mday,
@@ -6643,7 +6652,7 @@
 			      EX_HOUR(x->c.pc), EX_MIN(x->c.pc),
 			      EX_SEC(x->c.pc),
 #endif
-			      RSTRING_PTR(mk_inspect_flags(x)));
+			      RSTRING_PTR(flags));
     }
 }
 
@@ -6658,12 +6667,16 @@
 static VALUE
 mk_inspect(union DateData *x, const char *klass, const char *to_s)
 {
+    VALUE jd, sf;
+
+    RB_GC_GUARD(jd) = f_inspect(m_real_jd(x));
+    RB_GC_GUARD(sf) = f_inspect(m_sf(x));
+
     return rb_enc_sprintf(rb_usascii_encoding(),
 			  "#<%s: %s ((%sj,%ds,%sn),%+ds,%.0fj)>",
 			  klass ? klass : "?",
 			  to_s ? to_s : "?",
-			  RSTRING_PTR(f_inspect(m_real_jd(x))), m_df(x),
-			  RSTRING_PTR(f_inspect(m_sf(x))),
+			  RSTRING_PTR(jd), m_df(x), RSTRING_PTR(sf),
 			  m_of(x), m_sg(x));
 }
 
@@ -6685,8 +6698,12 @@
 d_lite_inspect(VALUE self)
 {
     get_d1(self);
-    return mk_inspect(dat, rb_obj_classname(self),
-		      RSTRING_PTR(f_to_s(self)));
+    {
+	VALUE to_s;
+
+	RB_GC_GUARD(to_s) = f_to_s(self);
+	return mk_inspect(dat, rb_obj_classname(self), RSTRING_PTR(to_s));
+    }
 }
 
 #include <errno.h>

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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