summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-02-18 09:53:25 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-02-18 09:53:25 +0000
commitfd411c129214b266d6a4cd55bf9784fa59c4ebd8 (patch)
treec6a70f34e4ecc6ebe0ab60bccb30bbf1c9cecbfc /eval.c
parent27cfa54f24bc48ed5b379306b3a327b5f58b0624 (diff)
* eval.c (block_pass): "&nil" should clear block given.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@2083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index af8194df6e..1507196537 100644
--- a/eval.c
+++ b/eval.c
@@ -6524,7 +6524,10 @@ block_pass(self, node)
volatile int safe = ruby_safe_level;
if (NIL_P(block)) {
- return rb_eval(self, node->nd_iter);
+ PUSH_ITER(ITER_NOT);
+ result = rb_eval(self, node->nd_iter);
+ POP_ITER();
+ return result;
}
if (rb_obj_is_kind_of(block, rb_cMethod)) {
block = method_proc(block);