mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
glob_opendir: do not goto into a branch
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
This commit is contained in:
parent
70857ae1aa
commit
99073f49bf
Notes:
git
2020-06-29 11:07:09 +09:00
1 changed files with 8 additions and 5 deletions
13
dir.c
13
dir.c
|
@ -2182,6 +2182,7 @@ glob_opendir(ruby_glob_entries_t *ent, DIR *dirp, int flags, rb_encoding *enc)
|
||||||
MEMZERO(ent, ruby_glob_entries_t, 1);
|
MEMZERO(ent, ruby_glob_entries_t, 1);
|
||||||
if (flags & FNM_GLOB_NOSORT) {
|
if (flags & FNM_GLOB_NOSORT) {
|
||||||
ent->nosort.dirp = dirp;
|
ent->nosort.dirp = dirp;
|
||||||
|
return ent;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
void *newp;
|
void *newp;
|
||||||
|
@ -2202,10 +2203,7 @@ glob_opendir(ruby_glob_entries_t *ent, DIR *dirp, int flags, rb_encoding *enc)
|
||||||
while ((dp = READDIR(dirp, enc)) != NULL) {
|
while ((dp = READDIR(dirp, enc)) != NULL) {
|
||||||
rb_dirent_t *rdp = dirent_copy(dp, NULL);
|
rb_dirent_t *rdp = dirent_copy(dp, NULL);
|
||||||
if (!rdp) {
|
if (!rdp) {
|
||||||
nomem:
|
goto nomem;
|
||||||
glob_dir_finish(ent, 0);
|
|
||||||
closedir(dirp);
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
if (count >= capacity) {
|
if (count >= capacity) {
|
||||||
capacity += 256;
|
capacity += 256;
|
||||||
|
@ -2226,8 +2224,13 @@ glob_opendir(ruby_glob_entries_t *ent, DIR *dirp, int flags, rb_encoding *enc)
|
||||||
}
|
}
|
||||||
ruby_qsort(ent->sort.entries, ent->sort.count, sizeof(ent->sort.entries[0]),
|
ruby_qsort(ent->sort.entries, ent->sort.count, sizeof(ent->sort.entries[0]),
|
||||||
glob_sort_cmp, NULL);
|
glob_sort_cmp, NULL);
|
||||||
|
return ent;
|
||||||
|
|
||||||
|
nomem:
|
||||||
|
glob_dir_finish(ent, 0);
|
||||||
|
closedir(dirp);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
return ent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static rb_dirent_t *
|
static rb_dirent_t *
|
||||||
|
|
Loading…
Add table
Reference in a new issue