summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-04-20 04:09:34 +0900
committerGitHub <[email protected]>2019-04-20 04:09:34 +0900
commit2f9ebc6f32571cc462d155eeaf32cdfb263eeba6 (patch)
tree8d668fef449585a100162289a686a0124f178fcf
parent05f65d2d429fcc5ff6bf5f2f8729fcb5de63b2ca (diff)
parent125c3bef19c364c958173ea27d35ffd683045ee2 (diff)
downloadmruby-2f9ebc6f32571cc462d155eeaf32cdfb263eeba6.tar.gz
mruby-2f9ebc6f32571cc462d155eeaf32cdfb263eeba6.zip
Merge pull request #4392 from dearblue/true-false-p
Add `mrb_true_p()` and `mrb_false_p()` macro functions
-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