diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-02-28 06:31:21 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-02-28 06:31:21 +0000 |
commit | 217bcffb740e65d228177b0ee5f8d2ba4714d418 (patch) | |
tree | 1cb605205c9486d3b3583cea02c4a62d9d15b62d /eval.c | |
parent | d80f9fe9245593b1cc4e568d123f0d25936962a0 (diff) |
* string.c (rb_str_delete_bang): delete! should take at least 1
argument.
* eval.c (ev_const_defined): check Object's constant if no current
class is available (e.g. defining singleton class for Fixnums).
* eval.c (rb_yield_0): should check based on rb_block_given_p()
and rb_f_block_given_p().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1430,8 +1430,8 @@ ev_const_defined(cref, id) while (cbase && cbase->nd_clss != rb_cObject) { struct RClass *klass = RCLASS(cbase->nd_clss); - if (klass->iv_tbl && - st_lookup(klass->iv_tbl, id, 0)) { + if (NIL_P(klass)) return rb_const_defined(rb_cObject, id); + if (klass->iv_tbl && st_lookup(klass->iv_tbl, id, 0)) { return Qtrue; } cbase = cbase->nd_next; @@ -3516,7 +3516,7 @@ rb_yield_0(val, self, klass, acheck) int state; static unsigned serial = 1; - if (!ruby_frame->iter || !ruby_block) { + if (!(rb_block_given_p() || rb_f_block_given_p()) || !ruby_block) { rb_raise(rb_eLocalJumpError, "yield called out of block"); } |