diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-04 19:17:33 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-04 19:17:33 +0000 |
commit | 72f2d2a00d8ae3861a15ca92bf9322951a22b6cf (patch) | |
tree | 3f74f159fcc7abf2e87ff7295e6400651a26a8c4 /vm_macro.def | |
parent | 71364da03fcae2e0fb7b2641b6ac1e507ee03da6 (diff) | |
download | ruby-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.def | 6 |
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, |