From 72f2d2a00d8ae3861a15ca92bf9322951a22b6cf Mon Sep 17 00:00:00 2001
From: matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
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

