* io.c (rb_open_file): don't access argv[-1] by

File.allocate.instance_eval { initialize }.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2008-08-18 16:04:09 +00:00
parent 93ad576b05
commit d889297933
2 changed files with 15 additions and 8 deletions

View File

@ -1,3 +1,8 @@
Tue Aug 19 01:02:19 2008 Tanaka Akira <akr@fsij.org>
* io.c (rb_open_file): don't access argv[-1] by
File.allocate.instance_eval { initialize }.
Tue Aug 19 00:56:01 2008 Tanaka Akira <akr@fsij.org>
* re.c (rb_reg_inspect): don't raise for uninitialized Regexp.

18
io.c
View File

@ -4461,14 +4461,16 @@ rb_open_file(int argc, VALUE *argv, VALUE io)
int flags;
unsigned int fmode;
opt = rb_check_convert_type(argv[argc-1], T_HASH, "Hash", "to_hash");
if (!NIL_P(opt)) {
VALUE v;
v = rb_hash_aref(opt, sym_mode);
if (!NIL_P(v)) vmode = v;
v = rb_hash_aref(opt, sym_perm);
if (!NIL_P(v)) perm = v;
argc -= 1;
if (0 < argc) {
opt = rb_check_convert_type(argv[argc-1], T_HASH, "Hash", "to_hash");
if (!NIL_P(opt)) {
VALUE v;
v = rb_hash_aref(opt, sym_mode);
if (!NIL_P(v)) vmode = v;
v = rb_hash_aref(opt, sym_perm);
if (!NIL_P(v)) perm = v;
argc -= 1;
}
}
rb_scan_args(argc, argv, "12", &fname, &vmode, &perm);