From 72f2d2a00d8ae3861a15ca92bf9322951a22b6cf Mon Sep 17 00:00:00 2001 From: matz Date: Sun, 4 Feb 2007 19:17:33 +0000 Subject: * parse.y (rb_compose_ivar2): function to create a new ivar2 symbol from a symbol and a class. back-ported from matzruby. * parse.y (rb_decompose_ivar2): reverse function of rb_compose_ivar2(). * marshal.c (w_symbol): support class local instance variables. * marshal.c (r_object0): ditto. * compile.c (defined_expr): ditto. * compile.c (iseq_compile_each): ditto. * insns.def: add two new instructions: getinstancevariable2 and setinstancevariable2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm_macro.def | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'vm_macro.def') diff --git a/vm_macro.def b/vm_macro.def index 8a2eb83dbb..e08fb14938 100644 --- a/vm_macro.def +++ b/vm_macro.def @@ -293,6 +293,12 @@ MACRO macro_eval_invoke_method(recv, klass, id, num, mn, blockptr) POP(); break; } + case NODE_IVAR2:{ + ID vid = rb_compose_ivar2(node->nd_vid, mn->nd_clss); + val = rb_ivar_get(recv, vid); + POP(); + break; + } case NODE_BMETHOD:{ VALUE *argv = GET_SP() - num; val = th_invoke_bmethod(th, id, node->nd_cval, -- cgit v1.2.3