diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-26 13:33:14 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-12-26 13:33:14 +0000 |
commit | 89eb20764ea4d3b780eee12488e7c3ff6fb9ba9f (patch) | |
tree | e7a4ebf6d948a323be51af989ef19b3707dbc424 /eval.c | |
parent | b56b457e45aefe2cc20bf85158fb8e886368072c (diff) |
* eval.c (rb_eval), gc.c (gc_mark_children), node.h (NEW_ALIAS,
NEW_VALIAS), parse.y (fitem): allow dynamic symbols to
NODE_UNDEF and NODE_ALIAS.
backported from trunk. fixed: [ruby-dev:28105]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -3889,7 +3889,7 @@ rb_eval(self, n) if (NIL_P(ruby_class)) { rb_raise(rb_eTypeError, "no class to undef method"); } - rb_undef(ruby_class, node->nd_mid); + rb_undef(ruby_class, rb_to_id(rb_eval(self, node->u2.node))); result = Qnil; break; @@ -3897,12 +3897,13 @@ rb_eval(self, n) if (NIL_P(ruby_class)) { rb_raise(rb_eTypeError, "no class to make alias"); } - rb_alias(ruby_class, node->nd_new, node->nd_old); + rb_alias(ruby_class, rb_to_id(rb_eval(self, node->u1.node)), + rb_to_id(rb_eval(self, node->u2.node))); result = Qnil; break; case NODE_VALIAS: - rb_alias_variable(node->nd_new, node->nd_old); + rb_alias_variable(node->u1.id, node->u2.id); result = Qnil; break; |