diff options
| author | Yukihiro Matz Matsumoto <[email protected]> | 2012-12-12 18:20:50 +0900 |
|---|---|---|
| committer | Yukihiro Matz Matsumoto <[email protected]> | 2012-12-12 18:20:50 +0900 |
| commit | 2a5d82885ae5b0c0f2de1e7a62e9b0bbec1294a7 (patch) | |
| tree | a9c7d667a224a7431edd3dc1559f02b9ef35b26f | |
| parent | 975adbfb5fde10f797480efb3f97b6d8bf659443 (diff) | |
| download | mruby-2a5d82885ae5b0c0f2de1e7a62e9b0bbec1294a7.tar.gz mruby-2a5d82885ae5b0c0f2de1e7a62e9b0bbec1294a7.zip | |
add MRB_TT_VOIDP
| -rw-r--r-- | include/mruby/value.h | 87 |
1 files changed, 50 insertions, 37 deletions
diff --git a/include/mruby/value.h b/include/mruby/value.h index 90c011a7e..ab56c9795 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -17,25 +17,26 @@ enum mrb_vtype { MRB_TT_SYMBOL, /* 4 */ MRB_TT_UNDEF, /* 5 */ MRB_TT_FLOAT, /* 6 */ - MRB_TT_MAIN, /* 7 */ - MRB_TT_OBJECT, /* 8 */ - MRB_TT_CLASS, /* 9 */ - MRB_TT_MODULE, /* 10 */ - MRB_TT_ICLASS, /* 11 */ - MRB_TT_SCLASS, /* 12 */ - MRB_TT_PROC, /* 13 */ - MRB_TT_ARRAY, /* 14 */ - MRB_TT_HASH, /* 15 */ - MRB_TT_STRING, /* 16 */ - MRB_TT_RANGE, /* 17 */ - MRB_TT_REGEX, /* 18 */ - MRB_TT_STRUCT, /* 19 */ - MRB_TT_EXCEPTION, /* 20 */ - MRB_TT_MATCH, /* 21 */ - MRB_TT_FILE, /* 22 */ - MRB_TT_ENV, /* 23 */ - MRB_TT_DATA, /* 24 */ - MRB_TT_MAXDEFINE /* 25 */ + MRB_TT_VOIDP, /* 7 */ + MRB_TT_MAIN, /* 8 */ + MRB_TT_OBJECT, /* 9 */ + MRB_TT_CLASS, /* 10 */ + MRB_TT_MODULE, /* 11 */ + MRB_TT_ICLASS, /* 12 */ + MRB_TT_SCLASS, /* 13 */ + MRB_TT_PROC, /* 14 */ + MRB_TT_ARRAY, /* 15 */ + MRB_TT_HASH, /* 16 */ + MRB_TT_STRING, /* 17 */ + MRB_TT_RANGE, /* 18 */ + MRB_TT_REGEX, /* 19 */ + MRB_TT_STRUCT, /* 20 */ + MRB_TT_EXCEPTION, /* 21 */ + MRB_TT_MATCH, /* 22 */ + MRB_TT_FILE, /* 23 */ + MRB_TT_ENV, /* 24 */ + MRB_TT_DATA, /* 25 */ + MRB_TT_MAXDEFINE /* 26 */ }; typedef struct mrb_value { @@ -78,24 +79,25 @@ enum mrb_vtype { MRB_TT_SYMBOL, /* 5 */ MRB_TT_UNDEF, /* 6 */ MRB_TT_FLOAT, /* 7 */ - MRB_TT_MAIN, /* 8 */ - MRB_TT_OBJECT, /* 9 */ - MRB_TT_CLASS, /* 10 */ - MRB_TT_MODULE, /* 11 */ - MRB_TT_ICLASS, /* 12 */ - MRB_TT_SCLASS, /* 13 */ - MRB_TT_PROC, /* 14 */ - MRB_TT_ARRAY, /* 15 */ - MRB_TT_HASH, /* 16 */ - MRB_TT_STRING, /* 17 */ - MRB_TT_RANGE, /* 18 */ - MRB_TT_REGEX, /* 19 */ - MRB_TT_STRUCT, /* 20 */ - MRB_TT_EXCEPTION, /* 21 */ - MRB_TT_MATCH, /* 22 */ - MRB_TT_FILE, /* 23 */ - MRB_TT_ENV, /* 24 */ - MRB_TT_DATA, /* 25 */ + MRB_TT_VOIDP, /* 8 */ + MRB_TT_MAIN, /* 9 */ + MRB_TT_OBJECT, /* 10 */ + MRB_TT_CLASS, /* 11 */ + MRB_TT_MODULE, /* 12 */ + MRB_TT_ICLASS, /* 13 */ + MRB_TT_SCLASS, /* 14 */ + MRB_TT_PROC, /* 15 */ + MRB_TT_ARRAY, /* 16 */ + MRB_TT_HASH, /* 17 */ + MRB_TT_STRING, /* 18 */ + MRB_TT_RANGE, /* 19 */ + MRB_TT_REGEX, /* 20 */ + MRB_TT_STRUCT, /* 21 */ + MRB_TT_EXCEPTION, /* 22 */ + MRB_TT_MATCH, /* 23 */ + MRB_TT_FILE, /* 24 */ + MRB_TT_ENV, /* 25 */ + MRB_TT_DATA, /* 26 */ MRB_TT_MAXDEFINE /* 27 */ }; @@ -149,6 +151,7 @@ mrb_float_value(mrb_float f) #define mrb_fixnum(o) (o).value.i #define mrb_symbol(o) (o).value.sym #define mrb_object(o) ((struct RBasic *) (o).value.p) +#define mrb_voidp(o) (o).value.p #define mrb_fixnum_p(o) (mrb_type(o) == MRB_TT_FIXNUM) #define mrb_float_p(o) (mrb_type(o) == MRB_TT_FLOAT) #define mrb_undef_p(o) (mrb_type(o) == MRB_TT_UNDEF) @@ -157,6 +160,7 @@ mrb_float_value(mrb_float f) #define mrb_array_p(o) (mrb_type(o) == MRB_TT_ARRAY) #define mrb_string_p(o) (mrb_type(o) == MRB_TT_STRING) #define mrb_hash_p(o) (mrb_type(o) == MRB_TT_HASH) +#define mrb_voidp_p(o) (mrb_type(o) == MRB_TT_VOIDP) #define mrb_test(o) (mrb_type(o) != MRB_TT_FALSE) #define MRB_OBJECT_HEADER \ @@ -229,6 +233,15 @@ mrb_obj_value(void *p) } static inline mrb_value +mrb_voidp_value(void *p) +{ + mrb_value v; + + MRB_SET_VALUE(v, MRB_TT_VOIDP, value.p, p); + return v; +} + +static inline mrb_value mrb_false_value(void) { mrb_value v; |
