summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-10 05:05:49 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-10 05:05:49 +0000
commitb3fc59837aa53c67e8167700b27ad79feaa30e33 (patch)
treeb1d0a4ac5b1c6bd7fa724eead39b3ca12c277910 /array.c
parentc19fafb0a45cc30b04fdeb9eb5b5fb8a6d80be79 (diff)
* array.c (rb_ary_cycle): avoid infinite loop for empty array.
based on a patch from David Flanagan. [ruby-core:12085] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'array.c')
-rw-r--r--array.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/array.c b/array.c
index 3b9a294d95..6ab12a4d76 100644
--- a/array.c
+++ b/array.c
@@ -2939,7 +2939,7 @@ rb_ary_cycle(VALUE ary)
long i;
RETURN_ENUMERATOR(ary, 0, 0);
- for (;;) {
+ while (RARRAY_LEN(ary) > 0) {
for (i=0; i<RARRAY_LEN(ary); i++) {
rb_yield(RARRAY_PTR(ary)[i]);
}