* 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
This commit is contained in:
nobu 2016-10-21 07:40:50 +00:00
Родитель 1e09d98b23
Коммит 9590e99031
1 изменённых файлов: 3 добавлений и 4 удалений

7
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);
}