From 95cbad84ec6608fd88d3b6128bb7e812f01af75c Mon Sep 17 00:00:00 2001 From: matz Date: Sat, 30 Oct 2004 06:56:18 +0000 Subject: * eval.c (rb_eval): NODE_XSTR should pass copy of literal string. * array.c (rb_ary_update): a[n,m]=nil no longer works as element deletion. * enum.c (enum_sort_by): protect continuation jump in. [ruby-dev:24642] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index a8df3ebd1..e26e1652c 100644 --- a/eval.c +++ b/eval.c @@ -3640,7 +3640,7 @@ rb_eval(self, n) break; case NODE_XSTR: - result = rb_funcall(self, '`', 1, node->nd_lit); + result = rb_funcall(self, '`', 1, rb_str_new3(node->nd_lit)); break; case NODE_LIT: @@ -3731,7 +3731,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; @@ -3739,12 +3739,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; -- cgit