summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-11-07 09:01:34 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-11-07 09:01:34 +0000
commit2f12c07c76c38a377e98555f1af738a8aa12f112 (patch)
tree0ca8dfde034e3a4837a4d4c7b5536a0bf3540e03 /eval.c
parent566c793d9b032ae1bc03340a10c4b5d1dcd116a7 (diff)
* dir.c (my_getcwd): do not rely on MAXPATHLEN.
* eval.c (rb_yield_0): should not call rb_f_block_given_p(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/eval.c b/eval.c
index d7c8c967d4..8ae640fabf 100644
--- a/eval.c
+++ b/eval.c
@@ -3502,7 +3502,8 @@ rb_iterator_p()
static VALUE
rb_f_block_given_p()
{
- if (ruby_frame->prev && ruby_frame->prev->iter) return Qtrue;
+ if (ruby_frame->prev && ruby_frame->prev->iter && ruby_block)
+ return Qtrue;
return Qfalse;
}
@@ -3521,8 +3522,8 @@ rb_yield_0(val, self, klass, acheck)
int state;
static unsigned serial = 1;
- if (!(rb_block_given_p() || rb_f_block_given_p()) || !ruby_block) {
- rb_raise(rb_eLocalJumpError, "yield called out of block");
+ if (!rb_block_given_p()) {
+ rb_raise(rb_eLocalJumpError, "no block given");
}
PUSH_VARS();
@@ -4470,7 +4471,7 @@ rb_call0(klass, recv, id, argc, argv, body, nosuper)
v = rb_ary_new4(argc,argv);
else
v = rb_ary_new2(0);
- local_vars[node->nd_rest] = v;
+ ruby_scope->local_vars[node->nd_rest] = v;
}
}
}