summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-07 02:51:05 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-07 02:51:05 +0000
commit4ded52b623ebd1b3de12db82f8b54cc156c1fd28 (patch)
tree7b44f5fa6aa0e5c49b2928d43f00ccc71c97a07f /dir.c
parent43db576e61cc70fc7d8280183b71985e5ab18651 (diff)
* file.c (rb_get_path): get path string via "to_path" method if
path object is not a string. [Ruby2] * gc.c (rb_gc_call_finalizer_at_exit): do not free threads in the exit finalizers. * io.c (rb_io_reopen): should use rb_io_check_io(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/dir.c b/dir.c
index b5306694a6..9ea6dd9620 100644
--- a/dir.c
+++ b/dir.c
@@ -379,7 +379,7 @@ dir_initialize(dir, dirname)
{
struct dir_data *dp;
- SafeStringValue(dirname);
+ dirname = rb_get_path(dirname);
Data_Get_Struct(dir, struct dir_data, dp);
if (dp->dir) closedir(dp->dir);
if (dp->path) free(dp->path);
@@ -744,7 +744,7 @@ dir_s_chdir(argc, argv, obj)
rb_secure(2);
if (rb_scan_args(argc, argv, "01", &path) == 1) {
- SafeStringValue(path);
+ path = rb_get_path(path);
dist = RSTRING(path)->ptr;
}
else {
@@ -806,8 +806,8 @@ check_dirname(dir)
{
char *path, *pend;
- SafeStringValue(*dir);
rb_secure(2);
+ *dir = rb_get_path(*dir);
path = RSTRING(*dir)->ptr;
if (path && *(pend = rb_path_end(rb_path_skip_prefix(path)))) {
*dir = rb_str_new(path, pend - path);
@@ -1439,7 +1439,7 @@ rb_push_glob(str, flags)
else
ary = rb_ary_new();
- SafeStringValue(str);
+ str = rb_get_path(str);
buf = xmalloc(RSTRING(str)->len + 1);
p = RSTRING(str)->ptr;