summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-08-14 13:16:34 +0900
committerYukihiro Matsumoto <[email protected]>2012-08-14 13:16:34 +0900
commit7d02df3016b0c6eb3f4ee945198772cf4ebca3fa (patch)
treeaf4c35ee567e9be3e2ef6ca0c34dbd10440550bc /src/class.c
parente74600c919cdadab1b4e605e50181f8cdafe7ab3 (diff)
downloadmruby-7d02df3016b0c6eb3f4ee945198772cf4ebca3fa.tar.gz
mruby-7d02df3016b0c6eb3f4ee945198772cf4ebca3fa.zip
NaN boxing
Diffstat (limited to 'src/class.c')
-rw-r--r--src/class.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/class.c b/src/class.c
index 795527263..0c0c6a3e8 100644
--- a/src/class.c
+++ b/src/class.c
@@ -204,7 +204,7 @@ class_from_sym(mrb_state *mrb, struct RClass *klass, mrb_sym id)
{
mrb_value c = mrb_const_get(mrb, mrb_obj_value(klass), id);
- if (c.tt != MRB_TT_MODULE && c.tt != MRB_TT_CLASS) {
+ if (mrb_type(c) != MRB_TT_MODULE && mrb_type(c) != MRB_TT_CLASS) {
mrb_raise(mrb, E_TYPE_ERROR, "%s is not a class/module", mrb_sym2name(mrb, id));
}
return mrb_class_ptr(c);
@@ -496,7 +496,7 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
p = va_arg(ap, mrb_float*);
if (i < argc) {
- switch (sp->tt) {
+ switch (mrb_type(*sp)) {
case MRB_TT_FLOAT:
*p = mrb_float(*sp);
break;
@@ -526,7 +526,7 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
p = va_arg(ap, mrb_int*);
if (i < argc) {
- switch (sp->tt) {
+ switch (mrb_type(*sp)) {
case MRB_TT_FIXNUM:
*p = mrb_fixnum(*sp);
break;
@@ -1264,8 +1264,7 @@ undef_method(mrb_state *mrb, struct RClass *c, mrb_sym a)
{
mrb_value m;
- m.tt = MRB_TT_PROC;
- m.value.p = 0;
+ MRB_SET_VALUE(m, MRB_TT_PROC, value.p, 0);
mrb_define_method_vm(mrb, c, a, m);
}
@@ -1317,10 +1316,10 @@ mod_define_method(mrb_state *mrb, mrb_value self)
static mrb_sym
mrb_sym_value(mrb_state *mrb, mrb_value val)
{
- if(val.tt == MRB_TT_STRING) {
+ if(mrb_type(val) == MRB_TT_STRING) {
return mrb_intern_str(mrb, val);
}
- else if(val.tt != MRB_TT_SYMBOL) {
+ else if(mrb_type(val) != MRB_TT_SYMBOL) {
mrb_value obj = mrb_funcall(mrb, val, "inspect", 0);
mrb_raise(mrb, E_TYPE_ERROR, "%s is not a symbol",
mrb_string_value_ptr(mrb, obj));