summaryrefslogtreecommitdiff
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
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
-rw-r--r--ChangeLog4
-rw-r--r--eval.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ffa7a6648d..59e7f11a4e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon Feb 18 13:56:44 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * eval.c (block_pass): "&nil" should clear block given.
+
Fri Feb 15 13:36:58 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
* bignum.c (rb_big_rshift): should properly convert the nagative
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);