aboutsummaryrefslogtreecommitdiffstats
path: root/eval.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 /eval.c
parent43db576e61cc70fc7d8280183b71985e5ab18651 (diff)
downloadruby-4ded52b623ebd1b3de12db82f8b54cc156c1fd28.tar.gz
* 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 'eval.c')
-rw-r--r--eval.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/eval.c b/eval.c
index a46157fc0b..85f8433c6b 100644
--- a/eval.c
+++ b/eval.c
@@ -6385,11 +6385,11 @@ rb_load(fname, wrap)
NODE *saved_cref = ruby_cref;
TMP_PROTECT;
- if (wrap && ruby_safe_level >= 4) {
+ if (wrap && ruby_safe_level >= 4 && OBJ_TAINTED(fname)) {
StringValue(fname);
}
else {
- SafeStringValue(fname);
+ fname = rb_get_path(fname);
}
tmp = rb_find_file(fname);
if (!tmp) {
@@ -6714,10 +6714,7 @@ rb_require_safe(fname, safe)
} volatile saved;
char *volatile ftptr = 0;
- if (OBJ_TAINTED(fname)) {
- rb_check_safe_obj(fname);
- }
- StringValue(fname);
+ fname = rb_get_path(fname);
saved.vmode = scope_vmode;
saved.node = ruby_current_node;
saved.func = ruby_frame->last_func;