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

ruby-changes:7234

From: akr <ko1@a...>
Date: Thu, 21 Aug 2008 19:21:11 +0900 (JST)
Subject: [ruby-changes:7234] Ruby:r18753 (trunk): * file.c (rb_stat_inspect): don't raise if self is not initialized.

akr	2008-08-21 19:20:55 +0900 (Thu, 21 Aug 2008)

  New Revision: 18753

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

  Log:
    * file.c (rb_stat_inspect): don't raise if self is not initialized.

  Modified files:
    trunk/ChangeLog
    trunk/file.c
    trunk/test/ruby/test_file.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18752)
+++ ChangeLog	(revision 18753)
@@ -1,3 +1,7 @@
+Thu Aug 21 19:20:25 2008  Tanaka Akira  <akr@f...>
+
+	* file.c (rb_stat_inspect): don't raise if self is not initialized.
+
 Thu Aug 21 19:17:02 2008  Tanaka Akira  <akr@f...>
 
 	* process.c (pst_pid): use rb_attr_get to avoid warning on
Index: test/ruby/test_file.rb
===================================================================
--- test/ruby/test_file.rb	(revision 18752)
+++ test/ruby/test_file.rb	(revision 18753)
@@ -117,5 +117,6 @@
 
   def test_uninitialized
     assert_raise(TypeError) { File::Stat.allocate.readable? }
+    assert_nothing_raised { File::Stat.allocate.inspect }
   end
 end
Index: file.c
===================================================================
--- file.c	(revision 18752)
+++ file.c	(revision 18753)
@@ -671,6 +671,12 @@
 	{"ctime",   rb_stat_ctime},
     };
 
+    struct stat* st;
+    Data_Get_Struct(self, struct stat, st);
+    if (!st) {
+        return rb_sprintf("#<%s: uninitialized>", rb_obj_classname(self));
+    }
+
     str = rb_str_buf_new2("#<");
     rb_str_buf_cat2(str, rb_obj_classname(self));
     rb_str_buf_cat2(str, " ");

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

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