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

ruby-changes:11908

From: nobu <ko1@a...>
Date: Tue, 26 May 2009 03:41:57 +0900 (JST)
Subject: [ruby-changes:11908] Ruby:r23569 (trunk): * time.c (rb_gmtime, rb_localtime): gmtime and localtime return

nobu	2009-05-26 03:41:32 +0900 (Tue, 26 May 2009)

  New Revision: 23569

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

  Log:
    * time.c (rb_gmtime, rb_localtime): gmtime and localtime return
      NULL on error.  [ruby-core:23551]

  Modified files:
    trunk/ChangeLog
    trunk/test/test_time.rb
    trunk/time.c

Index: time.c
===================================================================
--- time.c	(revision 23568)
+++ time.c	(revision 23569)
@@ -79,8 +79,24 @@
 #else
 #define IF_HAVE_GMTIME_R(x) 	/* nothing */
 #define ASCTIME(tm, buf) asctime(tm)
-#define GMTIME(tm, result) (result = *gmtime(tm), &result)
-#define LOCALTIME(tm, result) (result = *localtime(tm), &result)
+#define GMTIME(tm, result) rb_gmtime((tm), &(result))
+#define LOCALTIME(tm, result) rb_localtime((tm), &(result))
+
+static inline struct tm *
+rb_gmtime(const time_t *tm, struct tm *result)
+{
+    struct tm *t = gmtime(tm);
+    if (t) *result = *t;
+    return t;
+}
+
+static inline struct tm *
+rb_localtime(const time_t *tm, struct tm *result)
+{
+    struct tm *t = localtime(tm);
+    if (t) *result = *t;
+    return t;
+}
 #endif
 
 static ID id_divmod, id_mul, id_submicro, id_subnano;
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23568)
+++ ChangeLog	(revision 23569)
@@ -1,3 +1,8 @@
+Tue May 26 03:41:29 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* time.c (rb_gmtime, rb_localtime): gmtime and localtime return
+	  NULL on error.  [ruby-core:23551]
+
 Tue May 26 03:38:37 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* string.c (rb_str_each_char, rb_str_each_codepoint): string
Index: test/test_time.rb
===================================================================
--- test/test_time.rb	(revision 23568)
+++ test/test_time.rb	(revision 23569)
@@ -1,7 +1,7 @@
 require 'time'
 require 'test/unit'
 
-class TestTimeExtention < Test::Unit::TestCase # :nodoc:
+class TestTimeExtension < Test::Unit::TestCase # :nodoc:
   def test_rfc822
     assert_equal(Time.utc(1976, 8, 26, 14, 30) + 4 * 3600,
                  Time.rfc2822("26 Aug 76 14:30 EDT"))

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

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