From e3c25091cda672ff0ebe1dec996d859888907644 Mon Sep 17 00:00:00 2001 From: shugo Date: Wed, 10 Mar 2010 16:07:06 +0000 Subject: * iseq.c (rb_iseq_clone): sets local_iseq and klass properly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- iseq.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'iseq.c') diff --git a/iseq.c b/iseq.c index 80364ca751..fc13d70cc0 100644 --- a/iseq.c +++ b/iseq.c @@ -1344,11 +1344,15 @@ rb_iseq_clone(VALUE iseqval, VALUE newcbase) if (!iseq1->orig) { iseq1->orig = iseqval; } + if (iseq0->local_iseq == iseq0) { + iseq1->local_iseq = iseq1; + } if (newcbase) { iseq1->cref_stack = NEW_BLOCK(newcbase); if (iseq0->cref_stack->nd_next) { iseq1->cref_stack->nd_next = iseq0->cref_stack->nd_next; } + iseq1->klass = newcbase; } return newiseq; -- cgit v1.2.3