From 78e5e7305bb712a1be1fe9a509d278945454ff2b Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 21 Oct 2016 07:40:50 +0000 Subject: 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 --- dir.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'dir.c') diff --git a/dir.c b/dir.c index 92b795fbf5..cf4daeecf1 100644 --- a/dir.c +++ b/dir.c @@ -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); } -- cgit v1.2.3