summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-04-09 14:35:04 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-04-09 14:35:04 +0900
commitb531ae93bfa94dbe258b8b04c5c5583eb9d4a7b1 (patch)
tree5bd6093ff04669dbf1abe41e4693e108d8345189
parentc2bc09be3d78f8db411c5778fcc8a6d9a231732a (diff)
parent90d74b99ff62c1e88a23e4a8c18fa31ee6754f5d (diff)
downloadmruby-b531ae93bfa94dbe258b8b04c5c5583eb9d4a7b1.tar.gz
mruby-b531ae93bfa94dbe258b8b04c5c5583eb9d4a7b1.zip
Merge pull request #2033 from take-cheeze/mrb_tt_has_basic_p
Add MRB_TT_HAS_BASIC_P macro.
-rw-r--r--include/mruby.h4
-rw-r--r--include/mruby/value.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 9c63689a0..0ed701983 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -298,11 +298,11 @@ int mrb_gc_arena_save(mrb_state*);
void mrb_gc_arena_restore(mrb_state*,int);
void mrb_gc_mark(mrb_state*,struct RBasic*);
#define mrb_gc_mark_value(mrb,val) do {\
- if (mrb_type(val) >= MRB_TT_HAS_BASIC) mrb_gc_mark((mrb), mrb_basic_ptr(val));\
+ if (MRB_TT_HAS_BASIC_P(mrb_type(val))) mrb_gc_mark((mrb), mrb_basic_ptr(val)); \
} while (0)
void mrb_field_write_barrier(mrb_state *, struct RBasic*, struct RBasic*);
#define mrb_field_write_barrier_value(mrb, obj, val) do{\
- if ((val.tt >= MRB_TT_HAS_BASIC)) mrb_field_write_barrier((mrb), (obj), mrb_basic_ptr(val));\
+ if (MRB_TT_HAS_BASIC_P(val.tt)) mrb_field_write_barrier((mrb), (obj), mrb_basic_ptr(val)); \
} while (0)
void mrb_write_barrier(mrb_state *, struct RBasic*);
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 5df5b6a24..899ec30eb 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -469,6 +469,8 @@ mrb_cptr_value(struct mrb_state *mrb, void *p)
#define mrb_voidp(o) mrb_cptr(o)
#define mrb_voidp_p(o) mrb_cptr_p(o)
+#define MRB_TT_HAS_BASIC_P(tt) ((tt) >= MRB_TT_HAS_BASIC)
+
static inline mrb_value
mrb_false_value(void)
{