diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-10-21 07:40:50 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-10-21 07:40:50 +0000 |
commit | 9590e99031c434a2ac481d62e4bc921a91a2481c (patch) | |
tree | f97e7b6bf82cfec7119a96f75bf0468206496308 | |
parent | 1e09d98b23c8ab7d9467cbb2251776cb8eed7fd6 (diff) |
dir.c: use rb_gc_for_fd
* dir.c (rb_dir_s_empty_p): use rb_gc_for_fd for the condition to
invoke GC by errno.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | dir.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -2689,14 +2689,13 @@ rb_dir_s_empty_p(VALUE obj, VALUE dirname) dir = opendir(path); if (!dir) { int e = errno; - switch (e) { - case EMFILE: case ENFILE: - rb_gc(); + switch (rb_gc_for_fd(e)) { + default: dir = opendir(path); if (dir) break; e = errno; /* fall through */ - default: + case 0: if (false_on_notdir && e == ENOTDIR) return Qfalse; rb_syserr_fail_path(e, orig); } |