summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYuichi Nishiwaki <[email protected]>2013-08-03 14:03:44 -0700
committerYuichi Nishiwaki <[email protected]>2013-08-03 14:03:44 -0700
commit8dc2fa3bc8233d51d546359fcba89afe56892f1f (patch)
tree726f7d71c9d2c56c2d178e72b4cd33f0a6dcc779 /src
parent9b4d0718333f30a563b3df8c03aca5d78e04437f (diff)
downloadmruby-8dc2fa3bc8233d51d546359fcba89afe56892f1f.tar.gz
mruby-8dc2fa3bc8233d51d546359fcba89afe56892f1f.zip
add read barrier to value.p
API changes: - value.p must be accessed via mrb_value_p macro - value.p must be mutated via MRB_SET_VALUE_P macro
Diffstat (limited to 'src')
-rw-r--r--src/class.c2
-rw-r--r--src/etc.c2
-rw-r--r--src/object.c2
-rw-r--r--src/vm.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/src/class.c b/src/class.c
index 6d77f24e6..4331becae 100644
--- a/src/class.c
+++ b/src/class.c
@@ -1438,7 +1438,7 @@ undef_method(mrb_state *mrb, struct RClass *c, mrb_sym a)
mrb_name_error(mrb, a, "undefined method '%S' for class '%S'", mrb_sym2str(mrb, a), mrb_obj_value(c));
}
else {
- MRB_SET_VALUE(m, MRB_TT_PROC, value.p, 0);
+ MRB_SET_VALUE_P(m, MRB_TT_PROC, 0);
mrb_define_method_vm(mrb, c, a, m);
}
}
diff --git a/src/etc.c b/src/etc.c
index 2aee0f0f7..368685cf1 100644
--- a/src/etc.c
+++ b/src/etc.c
@@ -176,7 +176,7 @@ mrb_obj_id(mrb_value obj)
case MRB_TT_FILE:
case MRB_TT_DATA:
default:
- return MakeID(obj.value.p);
+ return MakeID(mrb_value_p(obj));
}
}
diff --git a/src/object.c b/src/object.c
index 5b2278767..5da5f651a 100644
--- a/src/object.c
+++ b/src/object.c
@@ -29,7 +29,7 @@ mrb_obj_eq(mrb_state *mrb, mrb_value v1, mrb_value v2)
return (mrb_float(v1) == mrb_float(v2));
default:
- return (v1.value.p == v2.value.p);
+ return (mrb_value_p(v1) == mrb_value_p(v2));
}
}
diff --git a/src/vm.c b/src/vm.c
index 4d99ad413..7d01239be 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -37,7 +37,7 @@ void abort(void);
#define SET_NIL_VALUE(r) MRB_SET_VALUE(r, MRB_TT_FALSE, value.i, 0)
#define SET_INT_VALUE(r,n) MRB_SET_VALUE(r, MRB_TT_FIXNUM, value.i, (n))
#define SET_SYM_VALUE(r,v) MRB_SET_VALUE(r, MRB_TT_SYMBOL, value.sym, (v))
-#define SET_OBJ_VALUE(r,v) MRB_SET_VALUE(r, (((struct RObject*)(v))->tt), value.p, (v))
+#define SET_OBJ_VALUE(r,v) MRB_SET_VALUE_P(r, (((struct RObject*)(v))->tt), (v))
#ifdef MRB_NAN_BOXING
#define SET_FLT_VALUE(mrb,r,v) r.f = (v)
#elif defined(MRB_WORD_BOXING)