diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-05-30 06:12:29 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-05-30 06:12:29 +0000 |
commit | 34f5c4061c6583fe854bdf8c792a6ffc226e3986 (patch) | |
tree | 3bedb874808188b29de760c9dcc1baa80542b85e /eval.c | |
parent | 21b2953030930e634da9aced44f71f019a599ad9 (diff) |
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@2506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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; |