aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-03-08 21:53:05 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-03-08 21:53:05 +0000
commit5856347f16368783a1d9d6691e3d5e125f720897 (patch)
tree20b747c539616f6606af3bea82a434bf8fc6f658 /vm_insnhelper.c
parent2262aba6a282aaad0ac7fedee9101e7927c48a4b (diff)
downloadruby-5856347f16368783a1d9d6691e3d5e125f720897.tar.gz
* vm_insnhelper.h: define struct SVAR for SVAR.
This data type is also same layout of NODE (NODE_IF). * vm_insnhelper.c: catch up this change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 3dce39d16a..ddb3040743 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -141,7 +141,7 @@ rb_error_arity(int argc, int min, int max)
/* svar */
-static inline NODE **
+static inline struct SVAR **
lep_svar_place(rb_thread_t *th, const VALUE *lep)
{
const VALUE *svar;
@@ -153,25 +153,25 @@ lep_svar_place(rb_thread_t *th, const VALUE *lep)
svar = &th->root_svar;
}
- return (NODE **)svar;
+ return (struct SVAR **)svar;
}
static VALUE
lep_svar_get(rb_thread_t *th, const VALUE *lep, rb_num_t key)
{
- NODE ** const svar_place = lep_svar_place(th, lep);
- const NODE * const svar = *svar_place;
+ struct SVAR ** const svar_place = lep_svar_place(th, lep);
+ const struct SVAR *const svar = *svar_place;
if (NIL_P((VALUE)svar)) return Qnil;
if (nd_type(svar) == NODE_CREF) return Qnil;
switch (key) {
case VM_SVAR_LASTLINE:
- return svar->u1.value;
+ return svar->lastline;
case VM_SVAR_BACKREF:
- return svar->u2.value;
+ return svar->backref;
default: {
- const VALUE ary = svar->u3.value;
+ const VALUE ary = svar->others;
if (NIL_P(ary)) {
return Qnil;
@@ -186,31 +186,31 @@ lep_svar_get(rb_thread_t *th, const VALUE *lep, rb_num_t key)
static void
lep_svar_set(rb_thread_t *th, VALUE *lep, rb_num_t key, VALUE val)
{
- NODE **svar_place = (NODE **)lep_svar_place(th, lep);
- NODE *svar = *svar_place;
+ struct SVAR **svar_place = lep_svar_place(th, lep);
+ struct SVAR *svar = *svar_place;
if (NIL_P((VALUE)svar)) {
- svar = *svar_place = NEW_IF(Qnil, Qnil, Qnil);
- svar->nd_reserved = Qfalse;
+ svar = *svar_place = (struct SVAR *)NEW_IF(Qnil, Qnil, Qnil);
+ svar->cref = NULL;
}
else if (nd_type(svar) == NODE_CREF) {
const rb_cref_t *cref = (rb_cref_t *)svar;
- svar = *svar_place = NEW_IF(Qnil, Qnil, Qnil);
- RB_OBJ_WRITE(svar, &svar->nd_reserved, (VALUE)cref);
+ svar = *svar_place = (struct SVAR *)NEW_IF(Qnil, Qnil, Qnil);
+ RB_OBJ_WRITE(svar, &svar->cref, (VALUE)cref);
}
switch (key) {
case VM_SVAR_LASTLINE:
- RB_OBJ_WRITE(svar, &svar->u1.value, val);
+ RB_OBJ_WRITE(svar, &svar->lastline, val);
return;
case VM_SVAR_BACKREF:
- RB_OBJ_WRITE(svar, &svar->u2.value, val);
+ RB_OBJ_WRITE(svar, &svar->backref, val);
return;
default: {
- VALUE ary = svar->u3.value;
+ VALUE ary = svar->others;
if (NIL_P(ary)) {
- RB_OBJ_WRITE(svar, &svar->u3.value, ary = rb_ary_new());
+ RB_OBJ_WRITE(svar, &svar->others, ary = rb_ary_new());
}
rb_ary_store(ary, key - VM_SVAR_EXTRA_START, val);
}
@@ -265,7 +265,7 @@ ep_cref(const VALUE *ep)
return (rb_cref_t *)svar;
}
else {
- return (rb_cref_t *)((NODE *)svar)->nd_reserved;
+ return (rb_cref_t *)((struct SVAR *)svar)->cref;
}
}