summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authordearblue <[email protected]>2019-04-19 22:50:05 +0900
committerdearblue <[email protected]>2019-04-19 22:50:05 +0900
commit125c3bef19c364c958173ea27d35ffd683045ee2 (patch)
tree8d668fef449585a100162289a686a0124f178fcf /include
parent05f65d2d429fcc5ff6bf5f2f8729fcb5de63b2ca (diff)
downloadmruby-125c3bef19c364c958173ea27d35ffd683045ee2.tar.gz
mruby-125c3bef19c364c958173ea27d35ffd683045ee2.zip
Add `mrb_true_p()` and `mrb_false_p()` macro functions
Diffstat (limited to 'include')
-rw-r--r--include/mruby/boxing_word.h2
-rw-r--r--include/mruby/value.h6
2 files changed, 8 insertions, 0 deletions
diff --git a/include/mruby/boxing_word.h b/include/mruby/boxing_word.h
index 3b7167b28..59fdb730d 100644
--- a/include/mruby/boxing_word.h
+++ b/include/mruby/boxing_word.h
@@ -116,6 +116,8 @@ mrb_type(mrb_value o)
#define mrb_fixnum_p(o) ((o).value.i_flag == MRB_FIXNUM_FLAG)
#define mrb_undef_p(o) ((o).w == MRB_Qundef)
#define mrb_nil_p(o) ((o).w == MRB_Qnil)
+#define mrb_false_p(o) ((o).w == MRB_Qfalse)
+#define mrb_true_p(o) ((o).w == MRB_Qtrue)
#define BOXWORD_SET_VALUE(o, ttt, attr, v) do { \
switch (ttt) {\
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 1ed20858f..8530950a9 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -157,6 +157,12 @@ typedef void mrb_value;
#ifndef mrb_nil_p
#define mrb_nil_p(o) (mrb_type(o) == MRB_TT_FALSE && !mrb_fixnum(o))
#endif
+#ifndef mrb_false_p
+#define mrb_false_p(o) (mrb_type(o) == MRB_TT_FALSE && !!mrb_fixnum(o))
+#endif
+#ifndef mrb_true_p
+#define mrb_true_p(o) (mrb_type(o) == MRB_TT_TRUE)
+#endif
#ifndef mrb_bool
#define mrb_bool(o) (mrb_type(o) != MRB_TT_FALSE)
#endif