From 0390fc54a4924aa219eaec2be981ef05acd60be7 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 30 May 2002 06:12:29 +0000 Subject: * range.c (range_step): iteration done using "+" if elements are Numeric. Otherwise using "succ". * range.c (range_each): iteration done using "succ". If the elements does not respond to "succ", raise TypeError. As a result, all Enumerable methods, e.g. collect, require elements to respond to "succ'. * range.c (range_member): comparison done using "each", if elements are non-Numeric or no-"succ" objects. Otherwise compare using "<=>". * range.c (Init_Range): remove "size" and "length". git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index a2c048022..64a0ffced 100644 --- a/eval.c +++ b/eval.c @@ -3851,7 +3851,7 @@ rb_yield_0(val, self, klass, pcall) if (ruby_dyna_vars->id == 0) { vars = ruby_dyna_vars->next; rb_gc_force_recycle((VALUE)ruby_dyna_vars); - while (vars && vars->id != 0) { + while (vars && vars->id != 0 && vars != block->dyna_vars) { struct RVarmap *tmp = vars->next; rb_gc_force_recycle((VALUE)vars); vars = tmp; -- cgit