summaryrefslogtreecommitdiff
path: root/enumerator.c
diff options
context:
space:
mode:
author卜部昌平 <shyouhei@ruby-lang.org>2020-08-14 14:45:23 +0900
committer卜部昌平 <shyouhei@ruby-lang.org>2020-08-15 12:09:26 +0900
commitff30358d13d24d8202f2717c43700be70bdd49d3 (patch)
tree32757f4895a67fefcfb4830e40e2206a7ac388f7 /enumerator.c
parent72d0f2f0e0546a4c7c3b9ec85d3f67a36e9c5038 (diff)
RARRAY_AREF: convert into an inline function
RARRAY_AREF has been a macro for reasons. We might not be able to change that for public APIs, but why not relax the situation internally to make it an inline function.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3419
Diffstat (limited to 'enumerator.c')
-rw-r--r--enumerator.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/enumerator.c b/enumerator.c
index 77cf565eec..3ea308a7cd 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -2087,7 +2087,8 @@ lazy_flat_map_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo
long i;
LAZY_MEMO_RESET_BREAK(result);
for (i = 0; i + 1 < RARRAY_LEN(ary); i++) {
- lazy_yielder_yield(result, proc_index, 1, &RARRAY_AREF(ary, i));
+ const VALUE argv = RARRAY_AREF(ary, i);
+ lazy_yielder_yield(result, proc_index, 1, &argv);
}
if (break_p) LAZY_MEMO_SET_BREAK(result);
if (i >= RARRAY_LEN(ary)) return 0;