From 78c5478af83453c7ef1bdfec001aace7437d9c1b Mon Sep 17 00:00:00 2001 From: shyouhei Date: Fri, 16 Jan 2009 02:00:48 +0000 Subject: merge revision(s) 18485: * class.c (clone_method): should copy cbase in cref as well. [ruby-dev:35116] * node.h (NEW_CREF): new NEW_ macro. * eval.c (PUSH_CREF): use NEW_CREF(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@21585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- class.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'class.c') diff --git a/class.c b/class.c index 096c7fbdf1..80f57a1622 100644 --- a/class.c +++ b/class.c @@ -62,7 +62,10 @@ clone_method(mid, body, data) NODE *fbody = body->nd_body; if (fbody && nd_type(fbody) == NODE_SCOPE) { - fbody = rb_copy_node_scope(fbody, ruby_cref); + NODE *cref = (NODE*)fbody->nd_rval; + + if (cref) cref = cref->nd_next; + fbody = rb_copy_node_scope(fbody, NEW_CREF(data->klass, cref)); } st_insert(data->tbl, mid, (st_data_t)NEW_METHOD(fbody, body->nd_noex)); return ST_CONTINUE; -- cgit v1.2.3