From 8481c848da553c3f2822e9f24407f3a23118d129 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 11 May 2008 14:19:41 +0000 Subject: * enum.c (all_iter_i, any_iter_i): reduced duplicated code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- enum.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'enum.c') diff --git a/enum.c b/enum.c index d567c1c388..73c1a24734 100644 --- a/enum.c +++ b/enum.c @@ -762,9 +762,9 @@ enum_sort_by(VALUE obj) } static VALUE -all_iter_i(VALUE i, VALUE *memo) +all_i(VALUE i, VALUE *memo) { - if (!RTEST(rb_yield(i))) { + if (!RTEST(i)) { *memo = Qfalse; rb_iter_break(); } @@ -772,13 +772,9 @@ all_iter_i(VALUE i, VALUE *memo) } static VALUE -all_i(VALUE i, VALUE *memo) +all_iter_i(VALUE i, VALUE *memo) { - if (!RTEST(i)) { - *memo = Qfalse; - rb_iter_break(); - } - return Qnil; + return all_i(rb_yield(i), memo); } /* @@ -808,9 +804,9 @@ enum_all(VALUE obj) } static VALUE -any_iter_i(VALUE i, VALUE *memo) +any_i(VALUE i, VALUE *memo) { - if (RTEST(rb_yield(i))) { + if (RTEST(i)) { *memo = Qtrue; rb_iter_break(); } @@ -818,13 +814,9 @@ any_iter_i(VALUE i, VALUE *memo) } static VALUE -any_i(VALUE i, VALUE *memo) +any_iter_i(VALUE i, VALUE *memo) { - if (RTEST(i)) { - *memo = Qtrue; - rb_iter_break(); - } - return Qnil; + return any_i(rb_yield(i), memo); } /* -- cgit v1.2.3