Skip to content

Commit ddc8a68

Browse files
committed
Avoid r_env_find() in ellipsis utils
1 parent 57fe1bd commit ddc8a68

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/internal/dots-ellipsis.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ r_obj* ffi_ellipsis_find_dots(r_obj* env) {
66
r_abort("`env` is a not an environment.");
77
}
88

9-
// `r_env_get()` doesn't work here because it triggers missing argument errors
10-
r_obj* dots = KEEP(r_env_find(env, r_syms.dots));
11-
if (dots == r_syms.unbound) {
9+
// `r_env_get()` triggers missing argument errors
10+
if (r_env_has_missing(env, r_syms.dots)) {
11+
return r_syms.missing;
12+
}
13+
14+
if (!r_env_has(env, r_syms.dots)) {
1215
r_abort("No `...` found.");
1316
}
1417

15-
FREE(1);
16-
return dots;
18+
return r_env_get(env, r_syms.dots);
1719
}
1820

1921
r_obj* ffi_ellipsis_dots(r_obj* env) {

0 commit comments

Comments
 (0)