aboutsummaryrefslogtreecommitdiffstats
path: root/vm_macro.def
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-04 19:17:33 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-04 19:17:33 +0000
commit72f2d2a00d8ae3861a15ca92bf9322951a22b6cf (patch)
tree3f74f159fcc7abf2e87ff7295e6400651a26a8c4 /vm_macro.def
parent71364da03fcae2e0fb7b2641b6ac1e507ee03da6 (diff)
downloadruby-72f2d2a00d8ae3861a15ca92bf9322951a22b6cf.tar.gz
* 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
Diffstat (limited to 'vm_macro.def')
-rw-r--r--vm_macro.def6
1 files changed, 6 insertions, 0 deletions
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,