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

ruby-changes:9857

From: yugui <ko1@a...>
Date: Fri, 9 Jan 2009 11:18:37 +0900 (JST)
Subject: [ruby-changes:9857] Ruby:r21397 (ruby_1_9_1): merges r21331 from trunk into ruby_1_9_1.

yugui	2009-01-09 11:18:06 +0900 (Fri, 09 Jan 2009)

  New Revision: 21397

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

  Log:
    merges r21331 from trunk into ruby_1_9_1.
    * file.c (rb_file_s_stat): need type check for non string values.
      [ruby-dev:37673]  fix: #964
    * file.c (rb_file_s_size, rb_file_s_atime, rb_file_s_mtime,
      rb_file_s_ctime, rb_f_test): ditto.

  Modified files:
    branches/ruby_1_9_1/ChangeLog
    branches/ruby_1_9_1/file.c

Index: ruby_1_9_1/ChangeLog
===================================================================
--- ruby_1_9_1/ChangeLog	(revision 21396)
+++ ruby_1_9_1/ChangeLog	(revision 21397)
@@ -1,3 +1,11 @@
+Mon Jan  5 08:41:13 2009  Yukihiro Matsumoto  <matz@r...>
+
+	* file.c (rb_file_s_stat): need type check for non string values.
+	  [ruby-dev:37673]  fix: #964
+
+	* file.c (rb_file_s_size, rb_file_s_atime, rb_file_s_mtime,
+	  rb_file_s_ctime, rb_f_test): ditto.
+
 Mon Jan  5 07:58:37 2009  Yukihiro Matsumoto  <matz@r...>
 
 	* random.c (rb_f_srand): update RDoc.  [ruby-core:21113]
Index: ruby_1_9_1/file.c
===================================================================
--- ruby_1_9_1/file.c	(revision 21396)
+++ ruby_1_9_1/file.c	(revision 21397)
@@ -773,7 +773,8 @@
     rb_secure(4);
     FilePathValue(fname);
     if (rb_stat(fname, &st) < 0) {
-	rb_sys_fail(StringValueCStr(fname));
+	FilePathValue(fname);
+	rb_sys_fail(RSTRING_PTR(fname));
     }
     return stat_new(&st);
 }
@@ -1590,8 +1591,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
-	rb_sys_fail(StringValueCStr(fname));
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
+	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return OFFT2NUM(st.st_size);
 }
 
@@ -1680,8 +1683,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
-	rb_sys_fail(StringValueCStr(fname));
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
+	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return stat_atime(&st);
 }
 
@@ -1724,8 +1729,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
 	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return stat_mtime(&st);
 }
 
@@ -1769,8 +1776,10 @@
 {
     struct stat st;
 
-    if (rb_stat(fname, &st) < 0)
+    if (rb_stat(fname, &st) < 0) {
+	FilePathValue(fname);
 	rb_sys_fail(RSTRING_PTR(fname));
+    }
     return stat_ctime(&st);
 }
 
@@ -3660,10 +3669,12 @@
 
     if (strchr("MAC", cmd)) {
 	struct stat st;
+	VALUE fname = argv[1];
 
 	CHECK(1);
-	if (rb_stat(argv[1], &st) == -1) {
-	    rb_sys_fail(RSTRING_PTR(argv[1]));
+	if (rb_stat(fname, &st) == -1) {
+	    FilePathValue(fname);
+	    rb_sys_fail(RSTRING_PTR(fname));
 	}
 
 	switch (cmd) {

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

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