From 887ff70f23e20081b424d1986988e005f8cce312 Mon Sep 17 00:00:00 2001 From: glass Date: Tue, 29 Oct 2013 14:08:48 +0000 Subject: * array.c (rb_ary_zip): some refactoring. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) (limited to 'array.c') diff --git a/array.c b/array.c index 19878f0c40..5e122a22f9 100644 --- a/array.c +++ b/array.c @@ -3217,44 +3217,51 @@ take_items(VALUE obj, long n) static VALUE rb_ary_zip(int argc, VALUE *argv, VALUE ary) { - int i, j, block_given, arity = 0; - long len; + int i, j; + long len = RARRAY_LEN(ary); VALUE result = Qnil; - len = RARRAY_LEN(ary); for (i=0; i 1 && argc+1 < 0x100) { - VALUE *tmp = ALLOCA_N(VALUE, argc+1); + if (arity > 1 && argc+1 < 0x100) { + VALUE *tmp = ALLOCA_N(VALUE, argc+1); - for (i=0; i