From 8d76b729a180c47d8edf4392d84a02ec00aeb37b Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Sat, 26 Sep 2020 00:53:07 +0900 Subject: Put same frozen Range literal if possible Range literal is now frozen so we can reuse same Range object if the begin and the last are Numeric (frozen), such as `(1..2)`. --- compile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'compile.c') diff --git a/compile.c b/compile.c index 0d2d7fbf73..7053837bb6 100644 --- a/compile.c +++ b/compile.c @@ -8644,8 +8644,8 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in VALUE flag = INT2FIX(excl); const NODE *b = node->nd_beg; const NODE *e = node->nd_end; - // TODO: Ractor can not use cached Range objects - if (0 && optimizable_range_item_p(b) && optimizable_range_item_p(e)) { + + if (optimizable_range_item_p(b) && optimizable_range_item_p(e)) { if (!popped) { VALUE bv = nd_type(b) == NODE_LIT ? b->nd_lit : Qnil; VALUE ev = nd_type(e) == NODE_LIT ? e->nd_lit : Qnil; -- cgit v1.2.3