|
#define | MRB_FIXNUM_SHIFT WORDBOX_FIXNUM_SHIFT |
|
#define | MRB_SYMBOL_SHIFT WORDBOX_SYMBOL_SHIFT |
|
#define | MRB_FIXNUM_MIN (INT32_MIN>>MRB_FIXNUM_SHIFT) |
|
#define | MRB_FIXNUM_MAX (INT32_MAX>>MRB_FIXNUM_SHIFT) |
|
#define | WORDBOX_FIXNUM_BIT_POS 1 |
|
#define | WORDBOX_FIXNUM_SHIFT WORDBOX_FIXNUM_BIT_POS |
|
#define | WORDBOX_FIXNUM_FLAG (1 << (WORDBOX_FIXNUM_BIT_POS - 1)) |
|
#define | WORDBOX_FIXNUM_MASK ((1 << WORDBOX_FIXNUM_BIT_POS) - 1) |
|
#define | WORDBOX_FLOAT_FLAG 2 |
|
#define | WORDBOX_FLOAT_MASK 3 |
|
#define | WORDBOX_SYMBOL_SHIFT 5 |
|
#define | WORDBOX_SYMBOL_FLAG 0x1c |
|
#define | WORDBOX_SYMBOL_MASK 0x1f |
|
#define | WORDBOX_IMMEDIATE_MASK 0x07 |
|
#define | WORDBOX_SET_SHIFT_VALUE(o, n, v) ((o).w = (((uintptr_t)(v)) << WORDBOX_##n##_SHIFT) | WORDBOX_##n##_FLAG) |
|
#define | WORDBOX_SHIFT_VALUE_P(o, n) (((o).w & WORDBOX_##n##_MASK) == WORDBOX_##n##_FLAG) |
|
#define | WORDBOX_OBJ_TYPE_P(o, n) (!mrb_immediate_p(o) && mrb_val_union(o).bp->tt == MRB_TT_##n) |
|
#define | mrb_immediate_p(o) ((o).w & WORDBOX_IMMEDIATE_MASK || (o).w == MRB_Qnil) |
|
#define | mrb_ptr(o) mrb_val_union(o).p |
|
#define | mrb_cptr(o) mrb_val_union(o).vp->p |
|
#define | mrb_float(o) mrb_word_boxing_value_float(o) |
|
#define | mrb_fixnum(o) (mrb_int)(((intptr_t)(o).w) >> WORDBOX_FIXNUM_SHIFT) |
|
#define | mrb_integer(o) mrb_integer_func(o) |
|
#define | mrb_symbol(o) (mrb_sym)(((o).w) >> WORDBOX_SYMBOL_SHIFT) |
|
#define | mrb_bool(o) (((o).w & ~(uintptr_t)MRB_Qfalse) != 0) |
|
#define | mrb_fixnum_p(o) WORDBOX_SHIFT_VALUE_P(o, FIXNUM) |
|
#define | mrb_integer_p(o) (WORDBOX_SHIFT_VALUE_P(o, FIXNUM)||WORDBOX_OBJ_TYPE_P(o, INTEGER)) |
|
#define | mrb_symbol_p(o) WORDBOX_SHIFT_VALUE_P(o, SYMBOL) |
|
#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 | mrb_float_p(o) WORDBOX_SHIFT_VALUE_P(o, FLOAT) |
|
#define | mrb_array_p(o) WORDBOX_OBJ_TYPE_P(o, ARRAY) |
|
#define | mrb_string_p(o) WORDBOX_OBJ_TYPE_P(o, STRING) |
|
#define | mrb_hash_p(o) WORDBOX_OBJ_TYPE_P(o, HASH) |
|
#define | mrb_cptr_p(o) WORDBOX_OBJ_TYPE_P(o, CPTR) |
|
#define | mrb_exception_p(o) WORDBOX_OBJ_TYPE_P(o, EXCEPTION) |
|
#define | mrb_free_p(o) WORDBOX_OBJ_TYPE_P(o, FREE) |
|
#define | mrb_object_p(o) WORDBOX_OBJ_TYPE_P(o, OBJECT) |
|
#define | mrb_class_p(o) WORDBOX_OBJ_TYPE_P(o, CLASS) |
|
#define | mrb_module_p(o) WORDBOX_OBJ_TYPE_P(o, MODULE) |
|
#define | mrb_iclass_p(o) WORDBOX_OBJ_TYPE_P(o, ICLASS) |
|
#define | mrb_sclass_p(o) WORDBOX_OBJ_TYPE_P(o, SCLASS) |
|
#define | mrb_proc_p(o) WORDBOX_OBJ_TYPE_P(o, PROC) |
|
#define | mrb_range_p(o) WORDBOX_OBJ_TYPE_P(o, RANGE) |
|
#define | mrb_env_p(o) WORDBOX_OBJ_TYPE_P(o, ENV) |
|
#define | mrb_data_p(o) WORDBOX_OBJ_TYPE_P(o, DATA) |
|
#define | mrb_fiber_p(o) WORDBOX_OBJ_TYPE_P(o, FIBER) |
|
#define | mrb_istruct_p(o) WORDBOX_OBJ_TYPE_P(o, ISTRUCT) |
|
#define | mrb_break_p(o) WORDBOX_OBJ_TYPE_P(o, BREAK) |
|
#define | SET_FLOAT_VALUE(mrb, r, v) ((r) = mrb_word_boxing_float_value(mrb, v)) |
|
#define | SET_CPTR_VALUE(mrb, r, v) ((r) = mrb_word_boxing_cptr_value(mrb, v)) |
|
#define | SET_UNDEF_VALUE(r) ((r).w = MRB_Qundef) |
|
#define | SET_NIL_VALUE(r) ((r).w = MRB_Qnil) |
|
#define | SET_FALSE_VALUE(r) ((r).w = MRB_Qfalse) |
|
#define | SET_TRUE_VALUE(r) ((r).w = MRB_Qtrue) |
|
#define | SET_BOOL_VALUE(r, b) ((b) ? SET_TRUE_VALUE(r) : SET_FALSE_VALUE(r)) |
|
#define | SET_INT_VALUE(mrb, r, n) ((r) = mrb_boxing_int_value(mrb, n)) |
|
#define | SET_FIXNUM_VALUE(r, n) WORDBOX_SET_SHIFT_VALUE(r, FIXNUM, n) |
|
#define | SET_SYM_VALUE(r, n) WORDBOX_SET_SHIFT_VALUE(r, SYMBOL, n) |
|
#define | SET_OBJ_VALUE(r, v) ((r).w = (uintptr_t)(v)) |
|
See Copyright Notice in mruby.h