|
#define | MRB_FIXNUM_MIN INT32_MIN |
|
#define | MRB_FIXNUM_MAX INT32_MAX |
|
#define | SET_FLOAT_VALUE(mrb, r, f) |
|
#define | mrb_float_p(o) (((uint64_t)((o).u)&0xfffc000000000000) != 0) |
|
#define | mrb_nb_tt(o) ((enum mrb_nanbox_tt_inline)((uint32_t)((o).u>>48)&3)) |
|
#define | NANBOX_SET_MISC_VALUE(r, t, i) NANBOX_SET_VALUE(r, MRB_NANBOX_TT_MISC, ((uint64_t)(t)<<32) | (i)) |
|
#define | mrb_float(o) mrb_nan_boxing_value_float(o) |
|
#define | mrb_fixnum(o) ((mrb_int)(((uintptr_t)0xffffffff)&((o).u))) |
|
#define | mrb_integer(o) mrb_fixnum(o) |
|
#define | mrb_symbol(o) ((mrb_sym)((uintptr_t)0xffffffff)&((o).u)) |
|
#define | mrb_ptr(o) ((void*)(uintptr_t)(o).u) |
|
#define | mrb_cptr(o) ((void*)(uintptr_t)(0xffffffffffffULL&(o).u)) |
|
#define | NANBOX_SET_VALUE(o, tt, v) |
|
#define | SET_NIL_VALUE(r) ((r).u = 0) |
|
#define | SET_FALSE_VALUE(r) NANBOX_SET_MISC_VALUE(r, MRB_TT_FALSE, 1) |
|
#define | SET_TRUE_VALUE(r) NANBOX_SET_MISC_VALUE(r, MRB_TT_TRUE, 1) |
|
#define | SET_BOOL_VALUE(r, b) NANBOX_SET_MISC_VALUE(r, (b) ? MRB_TT_TRUE : MRB_TT_FALSE, 1) |
|
#define | SET_INT_VALUE(mrb, r, n) SET_FIXNUM_VALUE(r, n) |
|
#define | SET_FIXNUM_VALUE(r, n) NANBOX_SET_VALUE(r, MRB_NANBOX_TT_INTEGER, (uint32_t)(n)) |
|
#define | SET_SYM_VALUE(r, v) NANBOX_SET_MISC_VALUE(r, MRB_TT_SYMBOL, (uint32_t)(v)) |
|
#define | SET_OBJ_VALUE(r, v) do {(r).u = (uint64_t)(uintptr_t)(v);} while (0) |
|
#define | SET_CPTR_VALUE(mrb, r, v) NANBOX_SET_VALUE(r, MRB_NANBOX_TT_CPTR, (uint64_t)(uintptr_t)(v) & 0x0000ffffffffffffULL) |
|
#define | SET_UNDEF_VALUE(r) NANBOX_SET_MISC_VALUE(r, MRB_TT_UNDEF, 4) |
|
#define | mrb_immediate_p(o) ((mrb_float_p(o) || mrb_nb_tt(o) != MRB_NANBOX_TT_OBJECT) || (o).u == 0) |
|
#define | mrb_nil_p(o) ((o).u == 0) |
|
#define | mrb_false_p(o) (mrb_type(o) == MRB_TT_FALSE || (o).u == 0) |
|
#define | mrb_fixnum_p(o) (!mrb_float_p(o) && mrb_nb_tt(o)==MRB_NANBOX_TT_INTEGER) |
|
See Copyright Notice in mruby.h